#1919810. 滚榜(icpc)

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:无测试数据
上传者: herry

题目描述

【题目背景】

命题人马上就要去参加 月份在西安举办的 了,内心十分兴奋,但他对 赛制没什么了解,便上网进行查询。他发现 比赛最快乐的地方就在于滚榜了,打算也向你们介绍一下。

1. 时间

一场 正式赛共 小时。

2. 排名

队伍的排名由通过题数罚时决定,其中通过题数更多的队伍排名更靠前。

如果通过题数相同,则罚时更小的队伍排名更靠前;如果有队伍通过题数与罚时均相同,则这些队伍排名相同。

本题中可能出现队伍排名相同的情况,此时认为先出现在提交记录中的队伍排名靠前。

3. 测评结果

选手在比赛过程中可以随时提交某一道试题的代码,代码将被立即评测并返回结果()。其中,评测结果为通过,其他评测结果均为不通过。

特别的,为减少输入,在如下描述及输入中会简写测评结果,如下表所示。

英文 简写 中文
通过
答案错误
运行错误
时间超限
内存超限
格式错误

4. 罚时

4.1 定义

罚时是由通过题目的时间未通过的提交次数决定的。罚时为每一道题 时比赛开始的分钟数 加上该题之前未通过的提交次数 分钟得到的。即 (单位为分钟)。

例如,队名为 的队伍在比赛进行 时提交通过了 题,在本次提交前共有 次提交,则 题会产生 分钟的罚时。

4.2 特殊情况

需要注意的是,仅有 的题目的未通过提交会被计算罚时。

更需要注意的是,在某一题通过后,该队对这一题的任何提交(无论是否能够通过)都不会影响本题通过的结果和本题的罚时。

例如,队名为 三少 的队伍在 题共有 次未通过的提交,但到比赛结束,该队都没有通过 题,则这 次未通过的提交不会被计算罚时;而队名为 南十方街 的队伍在 题共有 次未通过的提交,而在第 次提交时 ,那么第 次提交都不会被计算罚时。

4.3 更新时间

在比赛进行的前四小时(),每支队伍的提交均会在排行榜上反映出来。

在比赛的最后一小时(),排行榜将被冻结(俗称封榜),所有的提交在排行榜对应队伍对应试题上均显示为待判题(仅有提交的队伍知道评测结果)。

5. 滚榜

5.1 时间

在比赛结束后,会进行紧张刺激的滚榜环节。

5.2 过程

滚榜嘉宾将按照封榜时的排行榜,依照从最后一名到第一名,先读出队伍队名,再按照从A题依次到最后一题的顺序,公布排行榜上该队“待判题”状态试题最终是否通过。

如果通过,所有队伍的排名将立即重新计算(显然,不会对被滚榜嘉宾念过队名且所有待判题状态的结果都已经揭晓的队伍的排名产生影响)。若该队伍排名上升,则滚榜嘉宾立即开始下一支队伍的滚榜。因此,一支队伍的队名可能被滚榜嘉宾多次读出。

例如,队名为 的队伍在前四小时没有通过任何一题,封榜时排在最后一名。在封榜后,该队连续通过全部题目。那么滚榜嘉宾有可能读到该队队名很多次。当然,当该队上升到第一名后,其排名不会再发生变化,即使揭晓的判题结果为通过,但因为其排名没有发生变化,滚榜嘉宾不会再次读出其队名。

【题目描述】

现在给出某场 比赛完整的提交记录,请你依次输出滚榜嘉宾念出的队名。

注:一次提交记录都没有的队伍不会在排行榜上出现,也不会在滚榜中被念到队名。

【输入格式】

输入的第一行为三个整数,依次为该场 的试题数、队伍数、提交记录数。

接下来 行,每行为四个空格分隔的字符串,表达一条提交记录。

个字符串形如 ,代表该记录在比赛开始 小时 分钟 秒时提交。

个字符串为一个大写英文字母,代表试题的编号( ⋯)。

个字符串为队名,保证队名不含空格。

个字符串为该评测记录的评测结果(仅会出现**【题目背景】中的 种评测结果之一,即只会出现 中的一个),具体含义见【题目背景】**部分。

【输出格式】

输出若干行,为该滚榜嘉宾依次读到的队名。

【输入输出样例】

输入#1

2 2 4
0:00:01 A abc WA
0:00:02 A abc AC
0:19:38 A bcd AC
4:18:22 B abc AC

输出#1

abc
bcd
abc

样例解释

在封榜前,队伍 仅通过 题,且在第二秒的第一次正确提交之前有一次错误提交,因此罚时为 分钟;队伍 同样仅通过 题,且在 的第一次正确提交之前没有错误提交,因此罚时为 分钟。

在封榜后,队伍 通过了 题。

在滚榜环节开始,由于封榜后的提交未被揭晓,因此暂时认为队伍 均只通过一题,且前者罚时较大,排名靠后。

依照从最后一名到第一名的原则,队伍 的名字先被念到,并揭晓其在封榜后的提交的结果。其通过了 题,因此其通过题数被更新为 ,罚时同样被更新。同时,所有队伍的排名立即被重新计算。由于此时 通过题目数量大于 ,因此其排名重新计算为第一名,而 成为最后一名第二名。

这之后,队伍 的名字被念到,由于其在封榜后没有提交,因此这时所有队伍的排名没有变化,滚榜嘉宾会进行其上一名队伍的滚榜。

最后,队伍 的名字被念到,滚榜结束。

需要注意的是,在滚榜过程中是按题目顺序逐题揭晓提交状态

比如,一支队伍封榜后通过了多道题,在其进行滚榜过程中,只要按照从 题到最后一题的顺序,如果该队第一个“待判题”状态试题通过,后面所有的“待判题”状态也暂时不会揭晓,而是立刻进行排名更新或者更换另一支队伍进行滚榜。

【数据规模与约定】

对于 的数据,;且当 时,保证

保证提交记录按照提交时间不降序给出,即先给出的提交记录提交时间不会晚于后给出的提交记录的提交时间,试题名称为大写字母 ,队名均为长度不超过 的由小写字母组成的字符串,评测状态为**【题目背景】**中所给的 种之一(即为 其中之一)。

【内存与时间限制】

内存限制 ,时间限制