AtCoder 排名模拟
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
如果你是一个acm选手, 我建议你把计算罚时的模拟题放入模板。 因为总有出题人闲的天天出这种题。
AtCoder 每场比赛的排名规则如下:
- 共有 道题,第 题分数为 ;选手解出某题即可获得该题全部分数,否则不得分;
- 总得分 = 所有解出题目的分数之和,得分高者排名靠前;
- 对于成功解出的题目,该题罚时 = 首次 AC 的时刻(单位:秒)+ AC 前非 CE 的错误提交次数 300 秒;CE(编译错误)不计入任何统计;
- 未解出的题目不产生任何罚时;总罚时 = 所有解出题目的罚时的最大值,对于得分相同时,罚时少者排名靠前;
- 若总得分和总罚时均相同,则并列同名次,并列者按选手编号升序输出。
给定 名选手、 道题目及其分数、以及按时间非递减给出的 条提交记录,请你按照上述规则计算每名选手的最终排名、总得分和总罚时,并按排名顺序输出。
输入格式
第一行一个整数 (),表示测试数据组数。
每组数据格式如下:
第一行三个整数 (,,),分别表示选手人数、题目数、提交总数。
第二行 个整数 (),表示每道题的分数。
接下来 行,每行描述一条提交,格式为:
其中 为选手编号(), 为题号(), 为提交时刻(,单位:秒), 为评测结果(‘AC’、‘WA’、‘TLE’、‘RE’、‘CE’ 之一)。
保证 ,。保证每组数据的提交按时刻 非递减给出。
输出格式
对每组数据,输出 行,每行四个整数:排名、选手编号、总得分、总罚时。不同测试数据之间以一个空行隔开。
3
3 3 10
100 200 300
1 1 120 AC
2 1 200 WA
2 1 350 AC
2 1 500 WA
1 2 500 WA
1 2 600 AC
2 2 700 AC
2 2 800 CE
3 1 800 CE
3 3 900 WA
4 2 8
100 200
1 1 100 AC
2 1 100 AC
1 2 200 WA
1 2 300 AC
2 2 300 AC
3 1 400 WA
4 1 500 WA
4 1 600 AC
3 2 4
100 200
1 1 100 AC
2 1 100 AC
1 2 300 AC
2 2 300 AC
1 2 300 700
2 1 300 900
3 3 0 0
1 2 300 300
2 1 300 600
3 4 100 900
4 3 0 0
1 1 300 300
1 2 300 300
3 3 0 0