hdoj 1236 排序
2014-08-06 10:21
239 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1236
Total Submission(s): 15458 Accepted Submission(s): 5597
[align=left]Problem Description[/align]
今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑
每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的
考生,并将他们的成绩按降序打印。
[align=left]Input[/align]
测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0 < N
< 1000 )、考题数M ( 0 < M < = 10 )、分数线(正整数)G;第2行排序给出第1题至第M题的正整数分值;以下N行,每行给出一
名考生的准考证号(长度不超过20的字符串)、该生解决的题目总数m、以及这m道题的题号
(题目号由1到M)。
当读入的考生人数为0时,输入结束,该场考试不予处理。
[align=left]Output[/align]
对每场考试,首先在第1行输出不低于分数线的考生人数n,随后n行按分数从高
到低输出上线考生的考号与分数,其间用1空格分隔。若有多名考生分数相同,则按他们考
号的升序输出。
[align=left]Sample Input[/align]
4 5 25
10 10 12 13 15
CS004 3 5 1 3
CS003 5 2 4 1 3 5
CS002 2 1 2
CS001 3 2 3 5
1 2 40
10 30
CS001 1 2
2 3 20
10 10 10
CS000000000000000001 0
CS000000000000000002 2 1 2
0
[align=left]Sample Output[/align]
3
CS003 60
CS001 37
CS004 37
0
1
CS000000000000000002 20
Hint
Huge input, scanf is recommended.这题开始不会,请教他人才会。直接用头文件里的函数对结构体进行二级排序。
http://acm.hdu.edu.cn/showproblem.php?pid=1236
排名
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15458 Accepted Submission(s): 5597
[align=left]Problem Description[/align]
今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑
每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的
考生,并将他们的成绩按降序打印。
[align=left]Input[/align]
测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0 < N
< 1000 )、考题数M ( 0 < M < = 10 )、分数线(正整数)G;第2行排序给出第1题至第M题的正整数分值;以下N行,每行给出一
名考生的准考证号(长度不超过20的字符串)、该生解决的题目总数m、以及这m道题的题号
(题目号由1到M)。
当读入的考生人数为0时,输入结束,该场考试不予处理。
[align=left]Output[/align]
对每场考试,首先在第1行输出不低于分数线的考生人数n,随后n行按分数从高
到低输出上线考生的考号与分数,其间用1空格分隔。若有多名考生分数相同,则按他们考
号的升序输出。
[align=left]Sample Input[/align]
4 5 25
10 10 12 13 15
CS004 3 5 1 3
CS003 5 2 4 1 3 5
CS002 2 1 2
CS001 3 2 3 5
1 2 40
10 30
CS001 1 2
2 3 20
10 10 10
CS000000000000000001 0
CS000000000000000002 2 1 2
0
[align=left]Sample Output[/align]
3
CS003 60
CS001 37
CS004 37
0
1
CS000000000000000002 20
Hint
Huge input, scanf is recommended.这题开始不会,请教他人才会。直接用头文件里的函数对结构体进行二级排序。
#include<stdio.h> #include<string.h> #include<stdlib.h> struct Person { char num[40]; int sum; }man[2000]; int cmp(const void *a,const void *b)//进行二级排序 { struct Person *c=(Person *)a; struct Person *d=(Person *)b; if(c->sum!=d->sum) return d->sum-c->sum; else return strcmp(c->num,d->num); } int main() { int N,M,G,sore[20],i,j,k,n,n_; while(scanf("%d",&N)&&N!=0) { scanf("%d %d",&M,&G); memset(sore,0,sizeof(sore)); for(i=1;i<=M;i++) scanf("%d",&sore[i]); for(i=0,j=0;i<N;i++) { scanf("%s",man[j].num); scanf("%d",&n); for(k=0,man[j].sum=0;k<n;k++) { scanf("%d",&n_); man[j].sum+=sore[n_]; } if(man[j].sum>=G) j+=1; } qsort(man,j,sizeof(man[0]),cmp); printf("%d\n",j); for(i=0;i<j;i++) printf("%s %d\n",man[i].num,man[i].sum); } return 0; }
相关文章推荐
- HDOJ 1236,九度 :排名 简单的排序
- HDOJ 1236 排名(结构体成员的 sort 排序方法)
- HDOJ 1236 排名(排序)(浙大2005研究生复试)
- hdoj 1236 排名
- [HDOJ1106]排序
- HDOJ - Uniform Generator(排序,随机数)
- HDOJ-2578-Dating with girls(1) 【排序 去重 二分】
- HDOJ 2019 数列有序!(排序)
- HDOJ/HDU 2561 第二小整数(水题~排序~)
- hdoj_2020 绝对值排序
- 前缀+排序 HDOJ 4311 Meeting point-1
- HDOJ 5499 SDOI 【结构体排序】
- hdoj-2014 青年歌手大奖赛_评委会打分【sort排序||冒泡排序】
- hdoj 2020 绝对值排序
- HDOJ 1084 排序 水
- hdoj 1031 Design T-Shirt(排序)
- 暑期dp46道(13)——HDOJ 1160FatMouse's Speed 排序+最长严格下降子序列+回溯
- hdoj 3342 Legal or Not 【拓朴排序】
- HDOJ 题目3466 Proud Merchants(需排序的01背包)
- HDOJ 2020 绝对值排序!