1085 PAT單位排行

2021-10-01 07:35:00 字數 1258 閱讀 5991

題目鏈結

思路借鑑

分析:兩個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 即考生...