33OJ
登录 注册

#P17745. 「RSOI-1B」比赛 / contest

「RSOI-1B」比赛 / contest

背景

题目来源:【HT-121-Div.3】核桃 CSP-J 组模拟赛

题目描述

小 R 成为了 PSC 2027 的主办方,他需要查看 nn 名选手的成绩。比赛共 kk 题,每题满分均为 100100。

他获得了 mm 条提交记录,分别包括选手姓名、题目编号、该题得分。其中,选手姓名为字符串,其余均为整数。

现在,他想知道如果比赛是 OI 赛制或 IOI 赛制,选手的排名如何。

  • OI 赛制:选手的每题得分以其最后一次提交该题为准。
  • IOI 赛制:选手的每题得分以其最高分的一次提交为准。

选手未提交的题目得分为 00,保证每个选手至少有一次提交。


输出选手排名时,优先对选手的总分进行排序。

若总分相等,则排名相同,但输出时请根据选手的姓名按字典序排列。字典序较小的先输出。

排名时,相同分数占同一个名次,后面的名次跳过被占用的人数。

例如,若按总分从高到低为 100,70,70,20100,70,70,20。则排名是:1,2,2,41,2,2,4,而不是 1,2,2,31, 2, 2,3。

具体请参考样例。

输入格式

输入共 m+2m+2 行。

第一行,三个正整数 n,m,kn,m,k。表示选手数量、总提交次数和题目数量。

接下来 mm 行,每行一个字符串和两个整数,分别表示选手姓名、题目编号、该题得分。

接下来一行,一个字符串:

  • 若该字符串为 OI,则小 R 想知道如果比赛是 OI 赛制,选手的排名。
  • 若该字符串为 IOI,则小 R 想知道如果比赛是 IOI 赛制,选手的排名。

输出格式

输出共 nn 行,表示选手的排名。

第 ii 行,先输出该选手的排名,再输出选手的姓名,最后输出选手的总得分。

3 11 3
cyx 1 100
xlq 3 90
cht 3 95
cyx 2 90
cyx 2 95
cht 3 0
cyx 3 60
xlq 1 80
cht 2 100
cht 1 100
cyx 3 90
OI
1 cyx 285
2 cht 200
3 xlq 170
5 13 3
lw 1 100
lw 2 90
crx 1 100
crx 2 80
crx 2 100
lw 3 100
hy 3 100
hy 1 10
lw 2 100
crx 3 100
lyt 1 50
zyq 2 20
zyq 3 30
IOI
1 crx 300
1 lw 300
3 hy 110
4 lyt 50
4 zyq 50

提示

【样例解释 #1】

  • cyx\text{cyx} 的分数:100+95+90=285100+95+90=285,故排在第一。
  • cht\text{cht} 的分数:100+100+0=200100+100+0=200,故排在第二。注意,由于是 OI 赛制,cht\text{cht} 在第三题的最后一次提交分数为 00,取该提交计入总分。
  • xlq\text{xlq} 的分数:80+0+90=17080+0+90=170,故排在第三。

【样例解释 #2】

  • crx\text{crx} 的分数:100+100+100=300100+100+100=300,故排在第一。
  • lw\text{lw} 的分数:100+100+100=300100+100+100=300,故排在第一。注意,由于是 IOI 赛制,取 lw\text{lw} 第二题最高分的提交(100100 分)计入他的总得分。且由于 lw\text{lw} 的字典序大于 crx\text{crx} 的字典序,故先输出 crx\text{crx}。
  • hy\text{hy} 的分数:10+0+100=11010+0+100=110,故排在第三。
  • lyt\text{lyt} 的分数:50+0+0=5050+0+0=50,故排在第四。
  • zyq\text{zyq} 的分数:0+20+30=500+20+30=50,故排在第四。

【数据范围】

对于所有的数据,保证:

  • 1≤n,m,k≤1051 \le n,m,k \le 10^5。
  • 选手姓名均为小写字母且长度 ≤10\le 10。
  • 题目编号在 1∼k1 \sim k 之间,每题得分在 0∼1000 \sim 100 之间。

::cute-table{tuack}

子任务编号 n,m,k≤n,m,k \le 特殊性质 分值
1 10410^4 保证不出现总分相等的情况 40
2 10310^3 无 20
3 10510^5 40