CF175B Plane of Tanks: Pro
题目描述
Vasya 一整年都在和朋友们玩“Plane of Tanks”。现在是时候根据他们的成绩将参与者分成几个类别了。
每位玩家在“Plane of Tanks”的每一轮中都会获得一个非负整数的分数。Vasya 记录了去年每一轮的结果,总共有 $n$ 条记录。
为了判断玩家的类别,需要考虑该玩家取得过的最佳成绩,以及其他玩家的最佳成绩。具体分法如下:
- 如果有超过 $50\%$ 的玩家成绩更好,则他属于 “noob” 类别;
- 如果他的成绩不差于 $50\%$ 玩家,但仍有超过 $20\%$ 的玩家成绩更好,则他属于 “random” 类别;
- 如果他的成绩不差于 $80\%$ 玩家,但仍有超过 $10\%$ 的玩家成绩更好,则他属于 “average” 类别;
- 如果他的成绩不差于 $90\%$ 玩家,但仍有超过 $1\%$ 的玩家成绩更好,则他属于 “hardcore” 类别;
- 如果他的成绩不差于 $99\%$ 的玩家,则他属于 “pro” 类别。
计算百分比时,玩家自己也要计入。例如:如果有两名玩家,第一名得到 $100$ 分,第二名得到 $1000$ 分,则第一名的成绩不差于 $50\%$ 玩家,第二名的成绩不差于 $100\%$ 玩家。
Vasya 给出了去年所有的参赛结果。请帮助 Vasya 判断每位玩家所属的类别。
输入格式
第一行包含一个整数 $n$ ($1 \le n \le 1000$)—— 表示有 $n$ 条玩家成绩记录。
接下来的 $n$ 行,每行包含一个玩家名称和该轮获得的分数,用空格隔开。玩家名称不少于 $1$ 个且不超过 $10$ 个小写英文字母,且保证任意两个不同玩家的名字都不同。每个分数是一个不超过 $1000$ 的非负整数。
输出格式
第一行输出 $m$ —— 至少参与过一轮的玩家数量。
接下来的 $m$ 行,每行输出一个玩家的名字和其所属类别,用空格隔开。类别为如下之一(不含引号):noob、random、average、hardcore、pro,每个玩家只能输出一次。玩家与对应类别的输出顺序任意。
说明/提示
在第一个样例中,artem 的最佳成绩不差于 $25\%$ 的玩家(即他自己),所以他属于 “noob” 类别。vasya 和 kolya 的最佳成绩不差于 $75\%$ 的玩家(包括他们自己和 artem),因此属于 “random” 类别。igor 的最佳成绩不差于 $100\%$ 的玩家(所有玩家包括他自己),所以属于 “pro” 类别。
第二个样例中,两位玩家分数相同,因此都属于 “pro” 类别。
由 ChatGPT 5 翻译