# **[e800: p7. 影片推薦 TOI 新手同好會](https://zerojudge.tw/ShowProblem?problemid=e800)** --- ## **Input** 第一行有一個正整數 N (1<= N<=50),代表影片個數。接下來 N 行, 每行各有一個字串 S, 一個正整數 P,兩個正整數 L 和 W,一個正整數 R, 彼此間以空白隔開。 * 字串 S(S 不含空格,字元數不超過 15 個字元)代表影片名稱。 * 正整數 P (1<= P<=10^7 ) 代表觀看人數。 * 正整數 L (1<=L<=180) 和 W (1<=W<=180) 分別表示影片長度與平均觀看時間(單 位:分鐘)。 * 正整數 R (1<=R<=10) 代表相關係數。 ## **Output** 對於每筆測資按照優先推薦指數由大到小輸出影片名稱。 **(若推薦指數相同,則依輸入時的順序來輸出。)** --- ## **Sample input** ``` 4 Mina 500 10 7 10 TT 400 5 4 7 CheerUp 420 3 2 6 Twice 900 3 2 5 ``` ## **Sample output** ``` Mina Twice TT CheerUp ``` --- ## **Solution:** ```cpp= #include<iostream> #include<string> using namespace std ; struct Video { string s ; int people , length , watchtime , correlation_coefficient ; double priority ; }; int main() { ios_base::sync_with_stdio(0), cin.tie(0); int N , i = 0 ; cin >> N ; int times = N ; Video video[100] , temp ; while( N-- ) { cin >> video[i].s >> video[i].people >> video[i].length >> video[i].watchtime >> video[i].correlation_coefficient ; double avg = (double)video[i].watchtime / video[i].length ; video[i].priority = video[i].people * avg * video[i].correlation_coefficient ; i++ ; } for ( i = 0 ; i < times ; i ++ ) { for ( int j = i+1 ; j < times ; j ++ ) { if ( video[i].priority < video[j].priority ) { temp = video[i] ; video[i] = video[j] ; video[j] = temp ; } } cout << video[i].s << "\n" ; } return 0 ; } ``` ---