【寒假任务】 洛谷1093 奖学金
2017-02-01 17:58
253 查看
问题描述
一波奖学金要给总分最高的5位同学,若总分相同则语文成绩高的排前面,若两个成绩都相同就按学号从小到大排序。
输入
第1行为一个正整数n,不超过300,表示该校参加评选的学生人数。
第2到n+1行,每行有3个用空格隔开的数字,每个数字都在0到100之间。第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为1~n(恰好是输入数据的行号减1)。
输出
输出文件scholar.out共有5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。
样例输入
6
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
样例输出
6 265
4 264
3 258
2 244
1 237
算法讨论
比较简单,三关键字排序。时间复杂度O(n log n)。
Pixiv ID:60013393
一波奖学金要给总分最高的5位同学,若总分相同则语文成绩高的排前面,若两个成绩都相同就按学号从小到大排序。
输入
第1行为一个正整数n,不超过300,表示该校参加评选的学生人数。
第2到n+1行,每行有3个用空格隔开的数字,每个数字都在0到100之间。第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为1~n(恰好是输入数据的行号减1)。
输出
输出文件scholar.out共有5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。
样例输入
6
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
样例输出
6 265
4 264
3 258
2 244
1 237
算法讨论
比较简单,三关键字排序。时间复杂度O(n log n)。
const maxn=300; var a:array[1..maxn,1..5] of longint; i,j,n:longint; procedure qsort(l,r:longint); var i,j,t,m,m1,m2:longint; begin i:=l; j:=r; m:=a[(l+r) div 2,5]; m1:=a[(l+r) div 2,2]; m2:=a[(l+r) div 2,1]; repeat while (a[i,5]>m) or ((a[i,5]=m) and (a[i,2]>m1)) or ((a[i,5]=m) and (a[i,2]=m1) and (a[i,1]<m2)) do inc(i); while (a[j,5]<m) or ((a[j,5]=m) and (a[j,2]<m1)) or ((a[j,5]=m) and (a[j,2]=m1) and (a[j,1]>m2)) do dec(j); if i<=j then begin t:=a[i,5]; a[i,5]:=a[j,5]; a[j,5]:=t; t:=a[i,2]; a[i,2]:=a[j,2]; a[j,2]:=t; t:=a[i,1]; a[i,1]:=a[j,1]; a[j,1]:=t; inc(i); dec(j) end; until i>j; if l<j then qsort(l,j); if i<r then qsort(i,r) end; begin read(n); for i:=1 to n do begin a[i,1]:=i; read(a[i,2],a[i,3],a[i,4]); a[i,5]:=a[i,2]+a[i,3]+a[i,4] end; qsort(1,n); for i:=1 to 5 do writeln(a[i,1],' ',a[i,5]) end.
Pixiv ID:60013393
相关文章推荐
- 【寒假任务】 洛谷1051 谁拿了最多奖学金
- 【寒假任务】 洛谷1094 纪念品分组
- 【寒假任务】 洛谷1068 分数线划定
- 奖学金-洛谷 1093
- 【寒假任务】 洛谷1223 排队接水
- 【寒假任务】洛谷1003 铺地毯
- 【寒假任务】洛谷1540 机器翻译
- 洛谷1093 奖学金 解题报告
- 【寒假任务】洛谷1067 多项式输出
- 【寒假任务】 洛谷1781 宇宙总统
- 洛谷1093奖学金
- 【寒假任务】洛谷1125 笨小猴
- 【寒假任务】 洛谷1177 快速排序
- 【寒假任务】 洛谷1583 魔法照片
- 【寒假任务】 洛谷1181 数列分段section I
- 【寒假任务】 洛谷1059 明明的随机数
- 洛谷 1093——奖学金(排序Ex)
- 寒假的学习的任务
- 洛谷-A+B Problem-洛谷的第一个任务
- 洛谷P2365 任务安排 [解法一]