題目鏈結
思路借鑑
分析:兩個map,乙個cnt用來儲存某學校名稱對應的參賽人數,另乙個sum計算某學校名稱對應的總加權成績。每次學校名稱string school都要轉化為全小寫,將map中所有學校都儲存在vector ans中,型別為node,node中包括學校姓名、加權總分、參賽人數。對ans陣列排序,根據題目要求寫好cmp函式,最後按要求輸出。對於排名的處理:設立pres表示前乙個學校的加權總分,如果pres和當前學校的加權總分不同,說明rank等於陣列下標+1,否則rank不變
注意:總加權分數取整數部分是要對最後的總和取整數部分,不能每次都直接用int儲存,不然會有乙個3分測試點不通過;
**:
#pragma warning(disable:4996);
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//對字元進行處理,如大小寫轉換;
using
namespace std;
struct node
;bool
cmp(node a, node b)
intmain()
vector ans;
for(
auto it = cnt.
begin()
; it != cnt.
end(
); it++
)//map不能直接排序,把資料插入到vector中排序;
ans.
push_back
(node);
sort
(ans.
begin()
, ans.
end(
), cmp)
;int rank =
0, pres =-1
;//pres和rank聯合處理排名;設立pres表示前乙個學校的加權總分,如果pres和當前學校的加權總分不同,說明rank等於陣列下標+1,否則rank不變
printf
("%d\n",(
int)ans.
size()
);for(
int i =
0; i < ans.
size()
; i++
)return0;
}
1085 PAT單位排行
每次 pat 考試結束後,考試中心都會發布乙個考生單位排行榜。本題就請你實現這個功能。輸入第一行給出乙個正整數 n 10 5 即考生人數。隨後 n 行,每行按下列格式給出乙個考生的資訊 准考證號 得分 學校其中准考證號是由 6 個字元組成的字串,其首字母表示考試的級別 b代表乙級,a代表甲級,t代表...
1085 PAT單位排行
每次 pat 考試結束後,考試中心都會發布乙個考生單位排行榜。本題就請你實現這個功能。輸入格式 輸入第一行給出乙個正整數 n 10 5 即考生人數。隨後 n 行,每行按下列格式給出乙個考生的資訊 准考證號 得分 學校 其中准考證號是由 6 個字元組成的字串,其首字母表示考試的級別 b代表乙級,a代表...
1085 PAT單位排行 25
1085.pat單位排行 25 時間限制 500 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 每次 pat 考試結束後,考試中心都會發布乙個考生單位排行榜。本題就請你實現這個功能。輸入格式 輸入第一行給出乙個正整數n 105 即考生...