C++实现指定多规则的学生成绩排序与排名输出
类型:程序题

问题描述

有N名同学,每名同学有语文、数学、英语三科成绩。你需要按如下规则对所有同学的成绩从高到低排序:

  1. 比较总分,高者靠前;
  2. 如果总分相同,则比较语文和数学两科总分,高者靠前;
  3. 如果仍相同,则比较语文和数学两科的最高分,高者靠前;
  4. 如果仍相同,则二人并列。 你需要输出每位同学的排名,如遇x人并列,则他们排名相同,并留空后面的x-1个名次。例如,有3名同学并列第1,则后一名同学自动成为第4名。

输入描述

第一行一个整数N,表示同学的人数。 接下来N行,每行三个非负整数c_i, m_i, e_i分别表示该名同学的语文、数学、英语成绩。 保证0≤c_i, m_i, e_i≤150。

输出描述

输出N行,按输入同学的顺序,输出他们的排名。 注意:请不要按排名输出同学的序号,而是按同学的顺序输出他们各自的排名。

特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。

样例输入

6
140 140 150
140 149 140
148 141 140
141 148 140
145 145 139
0 0 0

样例输出

1
3
4
4
2
6

数据规模

对于30%的测试点,保证N≤100,且所有同学的总分各不相同。 对于所有测试点,保证2≤N≤10^4。

代码编辑器
测试用例输入
{{resultStatus.text}}