ICPC Rank
题号:NC231900
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

一场 ICPC 正在举行中,现在距离开赛已有 240 分钟,封榜模式启动。

但 NXlST**1 通过高新科技拿到了所有的提交记录,NXlST**1 拥有一台时光机,他能带着赛后的所有提交记录以及提交代码回到比赛开始后的第 x 分钟,因为 NXlST**1 的强大科技,他能瞬间交完他想提交的所有题目,同时 NXlST**1 的评测优先级也是最高的,没有人能在第 x 分钟交得比他快。他想知道,自己能否夺得 rank 1,如果能,输出"NXlST hhh"(不包含引号), 否则输出 NXlST**1 未穿越前的榜单。

榜单生成规则如下:

1. 过题数。某队伍的过题数为该队伍正确通过的不同题目的个数。

2. 总罚时。某队伍的总罚时为该队伍的所有题目罚时之和。

3. 题目罚时。某队伍在某题的题目罚时计算方法如下:

3.1. 若该队伍始终未通过此题,则该队伍在此题的题目罚时为 0

3.2. 否则,记 为该队伍在此题第一次正确通过前的此题提交次数,time 为该队伍第一次正确通过此题的开赛时间,则该队伍在此题的题目罚时为

4. 总最后一次有效提交序号。某队伍的总最后一次有效提交序号为该队伍的所有题目最后一次有效提交序号最大值。

5. 题目最后一次有效提交序号。某队伍在某题的题目最后一次有效提交序号计算方法如下:

5.1 若该队伍始终未通过此题,则该队伍在此题的题目最后一次有效提交序号为 0

5.2 否则,则该队伍在此题的题目最后一次有效提交序号为该队伍在此题的第一次正确通过的提交序号。

6. 排名。排名从 1 开始编号,排名越小则排名越高,打星队伍不参与排名。队伍 a 的排名比队伍 b 的排名小当且仅当满足

6.1 队伍 a 的过题数比队伍 b 的过题数多。

6.2 队伍 a 的过题数与队伍 b 的过题数一样多且队伍 a 的总罚时比队伍 b 的总罚时少。

6.3 队伍 a 的过题数与队伍 b 的过题数一样多且队伍 a 的总罚时与队伍 b 的总罚时一样且队伍 a 的总最后一次有效提交序号比队伍 b 的总最后一次有效提交序号小。

7. 有效正式参赛队伍。有效正式参赛队伍为至少正确通过一题的正式参赛队伍。

输入描述:

第一行输入三个整数  分别代表参赛队伍数,题目数,NXlST**1 能够回到比赛后的第 x 分钟,总提交记录个数。

接下来输入 n 行,每行输入一个字符串 和一个整数 ,表示参赛队伍名和该队伍是否打星,字符串 name 只包含不含空格的可见字符, 表示该队伍不打星属于正式参赛队伍, 该队伍表示打星不属于正式参赛队伍。保证 NXlST**1 属于参赛队伍,且初始是打星队伍,但穿越时空后 NXlST**1 会将自己修改为正式参赛队且 x 分钟前的提交不变,x 分钟及以后的提交 NXlST**1 可自行决定。

接下来输入 q 行,每行代表一个提交记录,保证提交按时间顺序给出,提交序号分别为 name 为只包含不含空格的可见字符的字符串,代表参赛队伍名;id 代表题号;count 代表这是该队伍在此题的第几次提交;time 代表这次提交发生在比赛开始后第 time 分钟;result 代表此次提交的结果,OK 表示正确通过,RJ 表示未通过。

输出描述:

如果 NXlST**1 能夺得 rank 1,输出"NXlST hhh",否则按照排名从小到大输出有效正式参赛队伍的榜单,对于某队伍,先输出该参赛队伍名,该参赛队伍总题数和该参赛队伍总罚时,然后对于每道题目,若该队伍通过此题,记 count 为该队伍第一次正确通过此题的此题提交次数,penalty 为该队伍在此题的题目罚时,则以 count(penalty) 的形式输出,特殊的,若该队伍是到了此题的一血(即该队伍是通过此题的第一个队伍),则以  的形式输出;否则若该队伍未通过此题,则输出 RJ。某队伍的记录全部以空格分隔,并以换行结束。

保证至少有4支正式队伍有有效提交。
示例1

输入

复制
6 4 10 7
NXlST**1 1
vg_dog 0
inverse_cross 0
breakfast 0
fc 0
kangkang 0
inverse_cross A 1 1 OK
inverse_cross B 1 1 OK
vg_dog A 1 1 OK
breakfast A 1 5 OK
kangkang B 1 10 RJ
fc A 1 15 RJ
kangkang B 2 20 OK

输出

复制
inverse_cross 2 2 1(1)* 1(1)* RJ RJ
vg_dog 1 1 1(1) RJ RJ RJ
breakfast 1 5 1(5) RJ RJ RJ
kangkang 1 40 RJ 2(40) RJ RJ
示例2

输入

复制
6 4 10 7
NXlST**1 1
vg_dog 0
inverse_cross 0
breakfast 0
fc 0
kangkang 0
inverse_cross A 1 1 OK
inverse_cross B 1 1 OK
vg_dog C 1 1 OK
breakfast A 1 5 OK
kangkang B 1 10 RJ
fc A 1 15 RJ
kangkang B 2 20 OK

输出

复制
NXlST hhh

备注:

为了避免未知的律师函,注意是 NXlST(第 3 个字符为小写 l)。