hdu 1236 1.3.2排名

排名

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 3690 Accepted Submission(s): 1171
 

Problem Description

今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑 
每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的 
考生,并将他们的成绩按降序打印。


Input

测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0 < N 
< 1000 )、考题数M ( 0 < M < = 10 )、分数线(正整数)G;第2行排序给出第1题至第M题的正整数分值;以下N行,每行给出一 
名考生的准考证号(长度不超过20的字符串)、该生解决的题目总数m、以及这m道题的题号 
(题目号由1到M)。 
当读入的考生人数为0时,输入结束,该场考试不予处理。


Output

对每场考试,首先在第1行输出不低于分数线的考生人数n,随后n行按分数从高 
到低输出上线考生的考号与分数,其间用1空格分隔。若有多名考生分数相同,则按他们考 
号的升序输出。


Sample Input

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


Sample Output

3
CS003 60
CS001 37
CS004 37
0
1
CS000000000000000002 20

Hint

Huge input, scanf is recommended.

 

Source

浙大计算机研究生复试上机考试-2005年


Recommend

JGShining

又犯了粗心的毛病,若有多名考生分数相同,则按他们考 
号的升序输出。 

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 struct Stu
 6 {
 7     char name[20+5];
 8     int ts;
 9     int score;
10 } stu[1000+10];
11 bool cmp(Stu a,Stu b)
12 {
13     if(a.score!=b.score)
14     return a.score>b.score;
15     else
16         return strcmp(a.name,b.name)<0;
17 }
18 int main()
19 {
20     int n,m,g;
21     int f[10+5];
22     while(scanf("%d",&n)&&n!=0)
23     {
24         scanf("%d%d",&m,&g);
25         int sum=0;
26         for(int i=0; i<m; i++)
27             scanf("%d",&f[i]);
28         for(int i=0; i<n; i++)
29         {
30             scanf("%s%d",stu[i].name,&stu[i].ts);
31             stu[i].score=0;
32             for(int j=0; j<stu[i].ts; j++)
33             {
34                 int x;
35                 scanf("%d",&x);
36                 stu[i].score+=f[x-1];
37             }
38             if(stu[i].score>=g)
39                 sum++;
40         }
41         sort(stu,stu+n,cmp);
42         printf("%d\n",sum);
43         for(int i=0; i<sum; i++)
44         {
45             printf("%s %d\n",stu[i].name,stu[i].score);
46         }
47     }
48     return 0;
49 }
时间: 2024-10-11 14:20:13

hdu 1236 1.3.2排名的相关文章

hdu 1236 排名

http://acm.hdu.edu.cn/showproblem.php?pid=1236 自己写的comp,终于勉强算是掌握sort()了...囧...继续努力~ 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 using namespace std; 5 struct St 6 { 7 char s[30]; 8 int sum,p; 9 }; 10 bool comp(struct

排名(hdu 1236)

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): 18409    Accepted Submission(s): 6692 Problem Description 今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数

杭电 HDU 1236 排名

排名 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 17116    Accepted Submission(s): 6167 Problem Description 今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑 每题的分值,所以并不是最后的排名.给定录取分数线,请你写程序找出最后通过分数线

HDU 1236 排名 (排序+结构体)

#include <stdio.h> #include <iostream> #include <string.h> #include <algorithm> using namespace std; struct stu { char test[25]; int numm; int right[10]; int total; }student[1001]; int cmp(stu a,stu b) { if(a.total != b.total) retu

hdu 1236 排名(排序)

题意:按成绩排序 思路:排序 #include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; struct node{ char name[25]; int grade; }a[1005]; bool cmp(node a,node b){ if(a.grade!=b.grade)return a.grade>b.grade

HDU 1236

水题~~但我做了很久: 题意:是中国人都懂了 思路:结构体排序: 以后要多用用重定义的排序手段,!!!!!多用!!多用!!多用!! 1 #include<iostream> 2 #include<algorithm> 3 #include<string> 4 using namespace std; 5 int grade[15]; 6 struct result{ 7 string num; 8 double tot; 9 }p[1050]; 10 bool cmp(

HDU 2093 考试排名

HDU 2093 考试排名 /* HDU 2093 考试排名 */ #include <cstdio> #include <string> #include <queue> #include <iostream> using namespace std; struct Node{ string name; int n; int useTime; bool operator<(const Node& rhs) const { //先按从n的值从大

ACM比赛得分排名,HDU 2093

考试排名 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 15541    Accepted Submission(s): 5464 Problem Description C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点.它的功能是怎么实现的呢?我们做好了题目的解答,提交之后,要么"AC",要么错误,不管怎样错法,

hdu 1285 确定比赛排名(拓扑排序)

确定比赛名次                                                                         Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)