题目名称 | 122. [NOIP 2007]奖学金 |
---|---|
输入输出 | pj07-1.in/out |
难度等级 | ★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 10 |
题目来源 | sywgz 于2008-09-22加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:460, 提交:1036, 通过率:44.4% | ||||
牛先生 | 100 | 0.000 s | 0.00 MiB | C++ |
GaoErFu | 100 | 0.000 s | 0.00 MiB | C++ |
Rapiz | 100 | 0.000 s | 0.00 MiB | C++ |
丿Mht丶闪电 | 100 | 0.000 s | 0.00 MiB | C++ |
Hyoi_0Koto | 100 | 0.000 s | 0.00 MiB | C++ |
Regnig Etalsnart | 100 | 0.000 s | 0.00 MiB | C++ |
Shirry | 100 | 0.000 s | 0.00 MiB | C++ |
joel | 100 | 0.000 s | 0.00 MiB | C++ |
Youngsc | 100 | 0.000 s | 0.00 MiB | C++ |
2018noip必胜! | 100 | 0.000 s | 0.00 MiB | C++ |
本题关联比赛 | |||
NOIP2007普及组(复现) |
关于 奖学金 的近10条评论(全部评论) | ||||
---|---|---|---|---|
萌新表示不会
music
2024-07-17 08:36
24楼
| ||||
这么水的两星题,捡了个好漏,简单冒泡就行了
| ||||
写完此题的神犇们请快速跳转 1054 双倍经验
夜莺
2020-02-01 14:39
22楼
| ||||
回复 @2018noip必胜! : 你给的是错的
135246
2019-03-04 19:55
21楼
| ||||
#include <bits/stdc++.h>
using namespace std; int main(void) { freopen("pj07-1.in","r",stdin); freopen("pj07-1.out","w",stdout); int n = 0,a[1000]={0},b=0,c=0;int m[1000],sum=0,sum2=0,s=0; cin>>n; for(int i = 1;i<n+1;i++) { cin>>a[i]>>b >>c ; m[i]=a[i]+b+c; } for(int i = 1;i<6;i++) { for(int j = 1;j<n+1;j++) { if(m[j]>sum) { sum=m[j];sum2=a[j];s=j; } if(m[j]==sum&&a[j]>sum2) { sum=m[j];sum2=a[j];s=j; } }cout<<s<<" "<<m[s]<<endl;sum=0;sum2=0;m[s]=0; } } | ||||
给萌新一个提示,此题不需要用for循环,comp()四个判断就可以;判断结束后什么都别加否则会错一个点,具体看我代码。
看着大佬说快排,手中写着sort+comp(),心中想着 | ||||
刚开始学oi的时候水过的题......现在都一年过去了..........
| ||||
结构体大法好
Shirry
2017-07-05 12:09
17楼
| ||||
算是个sort 的cmp函数的练习?
|
某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。
任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前5名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分)是:
7 279
5 279
这两行数据的含义是:总分最高的两个同学的学号依次是7号、5号。这两名同学的总分都是279(总分等于输入的语文、数学、英语三科成绩之和),但学号为7的学生语文成绩更高一些。如果你的前两名的输出数据是:
5 279
7 279
则按输出错误处理,不能得分。
输入文件包含行n+1行。
第l行为一个正整数n,表示该校参加评选的学生人数。
第2到年n+l行,每行有3个用空格隔开的数字,每个数字都在0到100之间。第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为1~n(恰好是输入数据的行号减1)。
所给的数据都是正确的,不必检验。
输出文件共有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
8 80 89 89 88 98 78 90 67 80 87 66 91 78 89 91 88 99 77 67 89 64 78 89 98
8 265 2 264 6 264 1 258 5 258
50%的数据满足:各学生的总成绩各不相同。
100%的数据满足:6<=n<=300。