A172803.训练营排名
普及-
官方
通过率:0%
时间限制:1.00s
内存限制:256MB
题目描述
Yuilice 正在公布欢乐训练营的最终排名。训练营有 n 名学员,每名学员有一个互不相同的编号、三项训练分数和一个用时。
一名学员的有效分等于三项分数中最高两项的和。满分项数量等于三项分数中等于 100 的项数。
“最高两项”可以分数相同。
请帮助 Yuilice 按照下列规则对学员排序:
- 有效分更高的排在前面;
- 有效分相同时,满分项数量更多的排在前面;
- 前两项都相同时,用时更少的排在前面;
- 前三项都相同时,编号更小的排在前面。
比较两名学员时,从第一条规则开始;只有这一项相同,才继续看下一条。一旦某条规则分出了先后,后面的规则就不再影响这两人的顺序。
输入格式
第一行输入一个整数 n。
接下来 n 行,每行输入五个整数 id s1 s2 s3 time,依次表示编号、三项训练分数和用时。
输出格式
按照排名顺序输出 n 行。每行输出学员编号和有效分,中间用一个空格分隔。
输入输出样例
输入#1
5 101 100 80 70 30 102 90 90 90 20 103 100 80 70 40 104 100 100 0 50 105 100 100 0 50
输出#1
104 200 105 200 101 180 103 180 102 180
输入#2
4 24 100 80 60 30 21 90 90 0 10 23 100 80 0 20 22 100 80 70 20
输出#2
22 180 23 180 24 180 21 180
说明/提示
样例 #1 解释
根据样例中的三项分数,得到:
| 编号 | 最高两项之和(有效分) | 满分项数量 | 用时 |
|---|---|---|---|
| 101 | 100+80=180 | 1 | 30 |
| 102 | 90+90=180 | 0 | 20 |
| 103 | 100+80=180 | 1 | 40 |
| 104 | 100+100=200 | 2 | 50 |
| 105 | 100+100=200 | 2 | 50 |
先看有效分:104 和 105 都是 200 分,排在三个 180 分的学员之前。这两人的满分项数量和用时也相同,最后比较编号,104 在前。
再看有效分为 180 的三人:101 和 103 各有一项满分,排在没有满分项的 102 之前。101 和 103 的满分项数量相同,再比较用时,30 小于 40,所以 101 在前。102 的用时虽然更少,但不能越过前面的满分项数量规则。
最终编号顺序为 104、105、101、103、102;每行再附上对应有效分,得到样例输出。
数据范围
对于所有测试数据,满足:
- 1≤n≤105;
- 1≤id≤109,所有编号互不相同;
- 0≤s1,s2,s3≤100;
- 0≤time≤109。
输入解题思路,AI测评打分。不知道怎么写?