为了庆祝这一天,白茶决定举行聚会。白茶将众人按亲密度排名,并选出排名前几的若干人发出邀请。然而白茶认为很多人亲密度都一样,所以出现了很多排名并列。
给定一个 行的亲密度得分 - 姓名表,现打算对亲密度排名小于等于 的人发出邀请。若亲密度越高排名越靠前,且亲密度相同者赋予相同的排名,试计算每个人的排名并确定邀请名单。亲密度得分 - 姓名表已经按照亲密度降序排序。
具体而言,用 表示表格第 行对应的得分, 表示该人的排名。保证在两名或以上人员的情况下 对于整数 恒成立。若整数 满足 且 ,则 ;若整数 满足 且 ,则 。。一个人被列入邀请名单当且仅当 。
举个例子,如果 总分均为 , 总分为 , 总分为 , 总分为 , 总分为 ,那么从 到 的排名分别为 。假设 ,那么他们都应该被列入邀请名单。
输入
输入第一行包含两个用空格间隔的整数 。
接下来 行每行包含一个整数 和一个字符串 ,用空格间隔,分别表示第 个人的得分和姓名。保证 仅由 ASCII 码中的可显示字符组成且不包括空格、制表符、换行符,保证 的长度满足 。
数据已经按照亲密度得分降序排序。
输出
输出第一行包含一个整数,表示表格中最后一行(即第 行)对应的人的得分排名。
接下来输出若干行,按照输入顺序输出排名小于等于 的所有人,每行输出一个整数一个字符串,用空格间隔,分别表示该人的得分排名和姓名。
样例
标准输入 复制文本 |
10 8 10000 iqom 100 slou 100 lous 100 ousl 99 uslo 99 soso 98 lulu 96 susu 0 uols 0 ssss |
标准输出 复制文本 |
9 1 iqom 2 slou 2 lous 2 ousl 5 uslo 5 soso 7 lulu 8 susu |
标准输入 复制文本 |
11 5 666 jin_le 233 sang_ze 233 public 222 final 166 String 166 title 165 xue_jie 100 bobby 70 lr580 70 dayuanx 10 phamton |
标准输出 复制文本 |
11 1 jin_le 2 sang_ze 2 public 4 final 5 String 5 title |
来源
2021 软件学院 AK 杯程序设计竞赛 (现场赛)