#211. 这是一道基础题

这是一道基础题

题目描述

给定一场CCPC比赛的题目数量和提交列表,请你输出终榜。

榜单的格式见输出和样例

根据比赛规则,榜单有以下要求:

  1. 每道题的通过罚时按照分钟计算。每次未通过提交增加20分钟罚时,保证每个队伍罚时均小于10000分钟。到比赛结束都没有通过的题目不计入该队伍的罚时。

  2. 每队通过后的题目在榜单的题目栏中用 + 显示。如果仅提交一次就通过了,则显示 +。 否则显示+k,k为这个队伍对于这道题,第一次通过前,所提交未通过的次数。保证 k 不大于 9。

  3. 每队提交但是未通过的题目在榜单的题目栏中用 -k 显示,k为这个队伍对于这道题的总提交次数。保证 k 不大于9。

  4. 每队没有提交的题目需要在榜单的该队的题目栏留空。

  5. 由于大家都讨厌CE,所以状态为Compile Error的提交不计入榜单。

  6. 众所周知,对于某个队伍来说,在通过某个题目后再次提交该题目,则通过后的提交不计入榜单。

  7. 如果某个队伍没有提交,或者所有的提交均不计入榜单。则榜单上不显示该队伍。

输入格式

第一行一个数字 n,表示这场比赛有 n 道题目,题目的标号从 A开始。

接下来若干行,每行格式形如:时间 题号 结果 队名,表示一条提交,提交按时间顺序排列。

其中,时间形如HH:MM,并且时间一定小于05:00

题号为单独的一个大写字母。

结果属于集合 { Accepted, Wrong Answer, Time Limit Exceeded, Compile Error, Memory Limit Exceeded, Output Limit Exceeded, Runtime Error, Presentation Error }。

队名为一个含有空格、大写和小写字母的字符串,队名长度不超过 50。

输入以一行 GAME OVER! 结尾,表示比赛结束。

数据保证最多有5000条提交记录。n14n \leq 14

输出格式

输出的榜单有 n+4 栏,每栏之间间隔 2 个空格。

Rank 一栏的宽度为 4 个字符,表示该队伍的排名

Who 一栏的宽度为所有显示在榜单上的队伍名字的最长长度,表示该队伍的名字

Solved 一栏宽度为 6 个字符,显示每个队伍通过题目的数量

Penalty 一栏宽度为 7 个字符,按要求显示每队罚时

接下来是题目栏,每个题目栏的宽度均为 3 个字符,按要求显示+-,表示每个队伍通过题目的情况

每一栏的第一行为这一栏的名称,其中,Who 需左对齐,其他栏需右对齐。

题目栏的名称为题目的标号

接下来若干行,按顺序输出每个队伍的信息,每栏的信息需右对齐。

队伍按照通过题目数量排名,如果两队通过题目数量相等,罚时少的队伍排名靠前。

注意,如果出现题数和罚时均相等的队伍,则按照队名的字典序排序,同时Rank一栏的值需相等。第一个与他们排名不相等的队伍的排名应该是绝对排名而非相对

排名。例如前五个队伍的排名分别为1,2,3,3,3,则第六个队伍的绝对排名为5,相对排名为4,你的程序需要按照绝对排名输出,即1,2,3,3,3,5。

样例

样例输入

4
00:01 B Wrong Answer Crispy FeiNianYu
00:01 B Accepted Crispy FeiNianYu
00:01 C Accepted Crispy FeiNianYu
00:01 D Accepted Crispy FeiNianYu
00:11 A Accepted BaBaLa Chongya
00:13 C Wrong Answer Make Keqing Great Again
01:01 C Wrong Answer Make Keqing Great Again
01:11 C Wrong Answer Make Keqing Great Again
02:01 C Runtime Error BaBaLa Chongya
02:10 C Accepted BaBaLa Chongya
02:30 A Accepted Crispy FeiNianYu
02:50 D Accepted 114514 1919810
02:51 C Accepted 114514 1919810
02:52 B Accepted 114514 1919810
02:53 A Accepted 114514 1919810
02:55 A Runtime Error Meng Gu Shang Dan
02:59 B Compile Error YZXDSB
GAME OVER!

样例输出

Rank  Who                      Solved  Penalty    A    B    C    D
   1         Crispy FeiNianYu       4      173    +   +1    +    +
   2           114514 1919810       4      686    +    +    +    +
   3           BaBaLa Chongya       2      161    +        +1     
   4  Make Keqing Great Again       0        0             -3     
   4        Meng Gu Shang Dan       0        0   -1