题目描述
C++ 编程考试使用的实时提交系统,具有即时获得成绩排名的特点。它的功能是怎么实现的呢?
我们做好了题目的解答,提交之后,要么“AC”,要么错误,不管怎样错法,总是给你记上一笔,表明你曾经有过一次错误提交,因而当你一旦提交该题“AC”后,就要与你算一算帐了,总共该题错误提交了几回。虽然你在题数上,大步地跃上了一个台阶,但是在总耗时上要摊上你共花去的时间。特别是,曾经有过的错误提交,每次都要摊上一定的单位时间。像这样在耗时的基础上加上错误提交的惩罚时间得到的结果一般称作“罚时”。这样一来,你在做出的题数上,可能领先别人很多,但是,在做出同样题数的人群中,你可能会在总罚时上处于排名的劣势。
例如:某次考试一共 $8$ 题($A,B,C,D,E,F,G,H$),每个人做的题都在对应的题号下有个数量标记,负数表示该学生在该题上有过的错误提交次数,但到现在还没有 AC,正数表示 AC 所耗的时间,如果正数 $a$ 跟上一对括号,里面有个整数 $b$,那就表示该学生提交该题 AC 了,耗去了时间 $a$,同时,曾经错误提交了 $b$ 次,因此对于下述输入数据:
![pic](/CLanguage/userfiles/images/1164.png)
若每次错误提交的罚时 $m$ 为 $20$ 分钟,则其排名从高到低应该是这样的:
```
Josephus 5 376
John 4 284
Alice 4 352
Smith 3 167
Bob 2 325
Bush 0 0
```
输入格式
输入的第一行包含两个正整数 $n,m\ (1\le n\le 12,\ 10\le m\le 20)$,分别表示考试题数及单位罚时。
其后多行,每行以一个字符串开头,描述一个学生的用户名(字符串长度不超过 $10$),其后跟 $n$ 个字符串,表示该学生对 $n$ 道题目的答题情况,格式见题面所述。各字符串间以制表符 `Tab` 隔开。
数据保证提交次数总是小于 $100$,若 AC 则通过时间总是小于 $1000$.
数据保证总人数不超过 $150$ 人。
**人数不定,请处理到文件结束。**