问题1417--高校录取

1417: 高校录取

时间限制: 1 Sec  内存限制: 128 MB
提交: 81  解决: 28
[提交] [状态] [讨论版] [命题人:]

题目描述

高三全省联合模拟考试刚刚结束,经过各科老师的努力,各个学科的改卷工作终于结束了,每位同学的各科分数也已经结算完毕。此时,老师们开始模拟各个高校录取情况。
每个大学有自己的录取范围。例如,清华、北大招生约为理科全省前100名,复旦、上海交大在全省理科101至300名。老师们想要知道哪些同学可以进入某个名校。
可是,统计软件突然失灵,查询和比对工作也无法进行,只有事先已经得到的理科每位同学的各科成绩。现在请你帮助老师编写一个程序,显示出可以进入某高校的名单。
此次考试理科排名规则:
1.按照语文、数学、外语、理科综合四门科目总分由高到低排名
2.若总分相同,则按照数学成绩由高到低排名;
3.若总分和数学成绩都相同,按照理科综合成绩由高到低排名;
4.若总分、数学、理科综合都相同,按照语文成绩由高到低排名;
5.若总分、数学、理科综合、语文成绩都相同,则按照报名序号小到大排序(这里报名序号为输入顺序,第1个输入就是1号,第100个输入就是100号)。

输入

第一行三个整数n,a和b,分别表示参加考试的人数和某高校的录取名次范围(从名次a到名次b)。
接下来n行,每行4个整数,表示每位同学的每门学科的成绩。依次为语文、数学、英语、综合。成绩0<=x<=300。

输出

输出b-a+1行,排名在a~b名的同学信息。
每行两个整数,分别为报名序号和总分(报名序号看题目描述),中间用空格分开。

样例输入 Copy

6 3 5
118 139 130 286
105 130 129 296
113 138 123 291
104 133 119 283
89 139 116 287
103 127 118 288

样例输出 Copy

2 660
4 639
6 636

提示

【样例1解释】
排序后由高到低
序号               总分
1     118 139 130 286 673
3     113 138 123 291 665
2     105 130 129 296 660
4     104 133 119 283 639
6     103 127 118 288 636
5     89    139 116 287 631
输出3~5名的序号和总分
【输出输出样例2】
range.in
range.out
7 3 5
118 139 130 286
105 130 129 296
113 138 123 291
105 130 129 296
89 139 116 287
107 127 116 286
103 127 118 288
2 660
4 660
7 636

【样例2解释】
排序后由高到低
序号               总分
1     118 139 130 286 673
3     113 138 123 291 665
2     105 130 129 296 660
4     105 130 129 296 660
7     103 127 118 288 636
6     107 127 116 286 636
5     89    139 116 287 631
7号和6号同为636分,数学分数又相同,理科综合分数7号较高,因此排在6号前面。
2号和4号所有成绩都相同,只能按照序号排序,2号在4号之前
【数据范围】
对于40%的数据,1<=a<=b<=n<=100,且保证每个人的总分都不相同。
对于70%的数据,1<=a<=b<=n<=300。
对于100%的数据,1<=a<=b<=n<=100000。

来源/分类