PAT单位排行
题目描述
每次 PAT 考试结束后,考试中心都会发布一个考生单位排行榜。本题就请你实现这个功能。
输入格式
输入第一行给出一个正整数 N(≤$10^5$),即考生人数。随后 N 行,每行按下列格式给出一个考生的信息:
1 | 准考证号 得分 学校 |
其中准考证号是由6个字符组成的字符串,其首字母表示考试的级别:B代表乙级,A代表甲级,T代表顶级;得分是 [0, 100] 区间内的整数;学校是由不超过6个英文字母组成的单位码(大小写无关)。注意:题目保证每个考生的准考证号是不同的。
输出格式
首先在一行中输出单位个数。随后按以下格式非降序输出单位的排行榜:
1 | 排名 学校 加权总分 考生人数 |
其中排名是该单位的排名(从1开始);学校是全部按小写字母输出的单位码;加权总分定义为乙级总分/1.5 + 甲级总分 + 顶级总分*1.5
的整数部分;考生人数是该属于单位的考生的总人数。
学校首先按加权总分排行。如有并列,则应对应相同的排名,并按考生人数升序输出。如果仍然并列,则按单位码的字典序输出。
输入样例
1 | 10 |
输出样例
1 | 5 |
问题解决
解题思想
此题与PAT乙级1080的处理过程是一样的,使用map
容器来接收输入并计算相关信息,map
容器中的元素是自动按键升序排序的,它是不能用sort
进行排序,因此把内容转移到结构体型的vector
,这样才能用sort
排序。
坑点提醒
None
代码示例(C/C++)
1 |
|
题目来源:PAT乙级1085
作者:CHEN, Yue
单位:浙江大学