GESP编程共123题,本题是整站第1402题,已经有人完成了本题,加油!
有 n 名同学,每名同学有语文、数学、英语三科成绩,你需要按照如下规则对所有同学的成绩从高到低排序:
你需要输出每位同学的排名,如遇 x 人并列,则他们排名相同,并留空后面的 x−1 个名次。例如,有 3 名同学并列第 1,则后一名同学自动成为第 4 名。
第一行一个整数 N,表示同学的人数。
接下来 N 行,每行三个非负整数 ci,mi,ei 分别表示该名同学的语文、数学、英语成绩。
输出 N 行,按输入同学的顺序,输出他们的排名。
注意:请不要按排名输出同学的序号,而是按同学的顺序输出他们各自的排名。
输入 #1
6 140 140 150 140 149 140 148 141 140 141 148 140 145 145 139 0 0 0
输出 #1
1 3 4 4 2 6
【题目大意】给定N个同学的语数英成绩,按照题目的要求对学生求解排名。
【考纲知识点】排序算法
【解题思路】该题目做法多样,可用结构体/pair数组/tuple等
总体流程:输入人数和对应的成绩,注意此时需要将人员的编号也存储下来,接下来按照比较优先级对人员进行排名:
优先级从高到低依次为:总分、语文数学总分、语文或数学最高分大的优先。
可以考虑用tuple,将对应的优先级数值存储后,做一次sort降序即可。
【参考程序】
本站题目仅供学习,GESP版权归CCF所有,如有侵权请联系删除。站长陈老师QQ及微信:208234。