我是卡在了最後乙個測試點。。也就是 測試點 5
不是執行超時的問題,反而是答案錯誤。花了我好長時間終於發現了問題
是這樣。。因為最後答案要求 :加權總分
定義為乙級總分/1.5 + 甲級總分 + 頂級總分*1.5
的整數部分
我也注意到最後輸出是整數部分。 但是我忘記了比較的時候!!!我用double與double 比較
就會出現 1.3 <1.5這樣的情況。實際上只取整數部分的話 要這樣比較!!( int)1.3==(int)1.5
浪費了我好久。。。我。。。
1085 pat單位排行(25 分)
每次 pat 考試結束後,考試中心都會發布乙個考生單位排行榜。本題就請你實現這個功能。
輸入第一行給出乙個正整數 n(≤105),即考生人數。隨後 n 行,每行按下列格式給出乙個考生的資訊:
准考證號 得分 學校
其中准考證號
是由 6 個字元組成的字串,其首字母表示考試的級別:b
代表乙級,a
代表甲級,t
代表頂級;得分
是 [0, 100] 區間內的整數;學校
是由不超過 6 個英文本母組成的單位碼(大小寫無關)。注意:題目保證每個考生的准考證號是不同的。
首先在一行中輸出單位個數。隨後按以下格式非降序輸出單位的排行榜:
排名 學校 加權總分 考生人數
其中排名
是該單位的排名(從 1 開始);學校
是全部按小寫字母輸出的單位碼;加權總分
定義為乙級總分/1.5 + 甲級總分 + 頂級總分*1.5
的整數部分;考生人數
是該屬於單位的考生的總人數。
學校首先按加權總分排行。如有並列,則應對應相同的排名,並按考生人數公升序輸出。如果仍然並列,則按單位碼的字典序輸出。
10
a57908 85 au
b57908 54 lanx
a37487 60 au
t28374 67 cmu
t32486 24 hypu
a66734 92 cmu
b76378 71 au
a47780 45 lanx
a72809 100 pku
a03274 45 hypu
5
1 cmu 192 2
1 au 192 3
3 pku 100 1
4 hypu 81 2
4 lanx 81 2
#include#include #include #include using namespace std;
struct list ;
typedef pairpair;
int cmp(const paira,const pairb)
int main()
printf("%d ",flag);
cout
} return 0;
}
1085 PAT單位排行 (25 分
每次 pat 考試結束後,考試中心都會發布乙個考生單位排行榜。本題就請你實現這個功能。輸入格式 輸入第一行給出乙個正整數 n 10 5 即考生人數。隨後 n 行,每行按下列格式給出乙個考生的資訊 准考證號 得分 學校 其中准考證號是由 6 個字元組成的字串,其首字母表示考試的級別 b代表乙級,a代表...
1085 PAT單位排行 25 分
每次 pat 考試結束後,考試中心都會發布乙個考生單位排行榜。本題就請你實現這個功能。輸入第一行給出乙個正整數 n 10 5 即考生人數。隨後 n 行,每行按下列格式給出乙個考生的資訊 准考證號 得分 學校其中准考證號是由 6 個字元組成的字串,其首字母表示考試的級別 b代表乙級,a代表甲級,t代表...
1085 PAT單位排行 25 分
每次 pat 考試結束後,考試中心都會發布乙個考生單位排行榜。本題就請你實現這個功能。輸入格式 輸入第一行給出乙個正整數 n n 1 05 n 10 5 n 10 5 即考生人數。隨後 n 行,每行按下列格式給出乙個考生的資訊 准考證號 得分 學校 其中准考證號是由 6 個字元組成的字串,其首字母表...