题目描述
名学生每人三个数:语文 、数学 、学号 。排名规则三条,依次生效:
- 总分 高的在先;
- 总分相同的,语文 高的在先;
- 仍相同的,学号小的在先。
输出最终名次对应的学号序列(一行,空格分隔)。
一个 pair 只装得下两个成员,可以让 pair 套 pair:pair<pair<int,int>,int>,外层 second 放学号。再让内层 pair 按默认字典序升序排的时候恰好等价于「总分降序、语文降序」——把内层存成 :取相反数,升序就倒成了降序。排序键要对齐比较优先级:先比的装前面。
输入格式
第一行一个整数 ()。
接下来 行,每行三个整数 、、(; 是 到 的一个排列,两两不同)。
输出格式
一行 个整数:按排名先后输出的学号,空格分隔。
样例
输入:
5
90 10 4
70 40 2
70 30 1
90 20 3
60 60 5
输出:
5 3 2 4 1
总分 110 的 3 号与 2 号:3 号语文 90 比 2 号的 70 高,所以 3 号在前;总分同为 100 的 4 号与 1 号同理。
数据范围
,, 为 的排列。总分至多 ,取相反数不会溢出 int。