#mxdx002. ICPC 排名
ICPC 排名
mxdx002. ICPC 排名
题目描述
一场 ICPC 赛制的比赛已经结束。现在给出每支队伍的队名、最终过题数和罚时,请按照 ICPC 排名规则输出所有队伍的排名。
请设计一个队伍类,封装队名、过题数和罚时。队伍对象应具备比较能力,使程序可以完成排序。具体类名、成员变量、构造函数以及比较函数或运算符重载方式均由解答自行设计。
排名规则如下:
- 过题数多的队伍排在前面。
- 过题数相同时,罚时少的队伍排在前面。
- 过题数和罚时都相同时,队名字典序小的队伍排在前面。
- 排名从 开始连续编号。
提交一个完整的 C++20 程序,并自行编写 main 处理标准输入和标准输出。本题不需要根据提交记录计算过题数或罚时。
输入格式
第一行包含一个整数 ,表示队伍数量。
接下来 行,每行包含一个字符串和两个整数:
name solved penalty
其中 name 是队名,solved 是最终过题数,penalty 是最终罚时。
输出格式
按照排名顺序输出 行,每行包含四个部分:
rank name solved penalty
其中 rank 从 开始连续编号。
数据范围
- 队名由小写英文字母组成,长度在 到 之间,且所有队名互不相同
- 所有数值均适合使用
int存储
本题不考察算法优化,直接使用排序即可通过。
示例 1
5
alpha 3 120
beta 3 100
gamma 2 80
delta 0 0
epsilon 3 100
1 beta 3 100
2 epsilon 3 100
3 alpha 3 120
4 gamma 2 80
5 delta 0 0
示例 2
1
only 0 0
1 only 0 0
说明
solved越大排名越靠前。- 当
solved相同时,penalty越小排名越靠前。 - 当
solved和penalty都相同时,按name的字典序升序排列。 - 题目保证队名唯一,因此不会出现无法决定先后顺序的情况。