|
||||||||||
魔法Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 15 Accepted Submission(s): 6 Problem Description 在传奇的魔法大陆,有着一个神秘的学校。小凯是该学校的一名学生,最近他在准备一个两星级赛事的集训队选拔。 但是集训队的选拔近在眼前,为了缓解焦虑,他想通过群里的成绩统计表格来计算一下自己当前大概在什么一个水平。 群里的表格有$ n $行$ K+2 $列,每一行都代表一个人的信息。这个表格统计了所有人的名字,$ K $ 场比赛的分数,codeforces的rating。具体格式如下: $$ \begin{matrix} name_1 & score_{1,1} & score_{1,2}& \cdots & score_{1,K}& rating_1\newline name_2 & score_{2,1} & score_{2,2}& \cdots & score_{2,K}& rating_2\newline \cdots\newline name_n & score_{n,1} & score_{n,2}& \cdots & score_{n,K}& rating_n\newline \end{matrix} $$ 其中$name_i$代表第$ i $个人的姓名(仅有小写字母和大写字母组成),$ score _{i,j} $表示第$ i $个人第$ j $场比赛的成绩,$rating_i$代表第$ i $个人的codeforces的rating。 在本题中,主人公小凯的名字被登记为$crazyzhk$。 因为第$ P $次模拟赛教练邀请到了专业命题组命题,因此教练认为那场比赛的含金量很高。所以教练对每个人的实力评估遵循以下式子。 $$ ability_i=\lfloor{\frac{(\sum_{j=1}^{K}{score_{i,j}})+score_{i,P}}{K+1}}\rfloor+rating_i $$ $ability_i$就是第$ i $个人的实力评估分数。其中$\lfloor x \rfloor$为向下取整,例如$\lfloor 2.5 \rfloor=2$,$\lfloor -3.5 \rfloor=-4$ 教练会按照实力评估分数给大家从大到小排名,如果两人的实力评估分数相等,则会按照codeforces的rating从大到小排名,如果两人实力评估分数相同的同时的codeforces的rating也相同,那么教练会给两人相同的名次。(比如小 A ,小 B ,小 C ,小 D的实力评估评分分别为2000,2000,2000,1800,rating分别为1500,1500,1400,1300,那么他们的名次分别为1,1,3,4) 小凯想让自己的名次尽可能高,而由于小凯是个魔法师,他可以在这时修改教练的记忆中的$ P $,让教练认为第$ x $场比赛是专业命题组命题的。小凯想知道当$ x $是多少时,他的名次是最高的。(如果对于多个$ x $,小凯能获得同样高的排名,那么小凯会让你找到最小的那个$ x $)同时他还想你按**以下格式按照名次从小到大**输出那个情况下所有人的排名状况。(**如果有多人的名次相同**,那么按照名字的字典序从小到大排) $$ \begin{matrix} rank_1 & name_1 & rating_1 & ability_1 \newline rank_2 & name_2 & rating_2 & ability_2 \newline \cdots\newline rank_n & name_n & rating_n & ability_n \newline \end{matrix} $$ 其中$ rank_i $代表第$ i $个人的名次。 什么是字典序: 简单地说,字典序意味着“单词在词典中出现的顺序”。更准确地说,确定由小写英文字母组成的两个不同字符串$ S $和$ T $的顺序的算法如下: 这里,$ S $的第$ i $个字符记为$S_i$。 定义如果$ S $在字典顺序上小于$ T $,我们写$ S \lt T $,如果$ S $在字典顺序上大于$ T $,我们写$ S \gt T $。 * 设$ L $为$ S $和$ T $之间**较短**的字符串的长度,我们去检查$ S_i $和$ T_i $是否相等$(i=1,2,…,L)$。 * 如果存在一个$ i $使得$S_i \neq T_i$,设$ j $为满足条件的最小的$ i $。比较$ S_j $和$ T_j $。如果$ S_j $按字母顺序小于$T_j$,则$ S \lt T $。否则,$ S \gt T $。算法到此结束。 * 如果不存在$ i $使得$S_i \neq T_i$,那么我们比较$ S $和$ T $的长度。如果$ S $的长度小于$ T $,则$S \lt T$。如果$ S $更长,那么$ S \gt T $。算法到此结束。 Input 第一行一个整数 $ T(1\leq T\leq 10^3) $,表示数据组数. 对于每组数据,第一行有两个整数$ n ,K(1 \le n,K \le 300)$,代表一共有$ n $个人,一共举行了$ K $场比赛。 数据保证$ \sum n\cdot k \leq 10^6 $ 接下来$ n $行,每行有一个仅有小写字母和大写字母组成的字符串$ name_i(1\le |name_i|\le 50) $,$K$个整数$ score_{i,1},score_{i,2},\cdots,score_{i,K}(0 \leq score_{i,j} \leq 600) $和一个整数$ rating_i(0 \leq rating_i\leq 1000) $,分别表示第$ i $个人的名字,$ K $场比赛的分数,codeforces的rating。**输入保证没有两个人的名字相同。 保证有一个人的名字是crazyzhk** Output 对于每组数据 第一行输出两个整数$ x ,y $,表示当小凯让教练认为第$ x $场比赛是专业命题组出题时,小凯的名次为$ y $,是所有情况中最高的。 接下来输出$ n $ 行,依次表示按题目要求排序后每个人的信息,输出要求如题目描述中所述。 Sample Input
Sample Output
Source | ||||||||||
|