hd1084 What Is Your Grade?

来源:互联网 发布:我是一名淘宝差评师 编辑:程序博客网 时间:2024/05/24 02:35

                                                                     What Is Your Grade?

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


Problem Description
“Point, point, life of student!”
This is a ballad(歌谣)well known in colleges, and you must care about your score in this exam too. How many points can you get? Now, I told you the rules which are used in this course.
There are 5 problems in this final exam. And I will give you 100 points if you can solve all 5 problems; of course, it is fairly difficulty for many of you. If you can solve 4 problems, you can also get a high score 95 or 90 (you can get the former(前者) only when your rank is in the first half of all students who solve 4 problems). Analogically(以此类推), you can get 85、80、75、70、65、60. But you will not pass this exam if you solve nothing problem, and I will mark your score with 50.
Note, only 1 student will get the score 95 when 3 students have solved 4 problems.
I wish you all can pass the exam!
Come on!
 

Input
Input contains multiple test cases. Each test case contains an integer N (1<=N<=100, the number of students) in a line first, and then N lines follow. Each line contains P (0<=P<=5 number of problems that have been solved) and T(consumed time). You can assume that all data are different when 0<p.
A test case starting with a negative integer terminates the input and this test case should not to be processed.
 

Output
Output the scores of N students in N lines for each case, and there is a blank line after each case.
 

Sample Input
45 06:30:174 07:31:274 08:12:124 05:23:1315 06:30:17-1
 

Sample Output
100909095100
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int a[110];struct note{int solve;char time[10];int count;int fen;}q[110];bool cmp(note a,note b){if(a.solve!=b.solve)    return a.solve>b.solve;else   return strcmp(a.time,b.time)<0;}bool cmp1(note a,note b){return a.count<b.count;}int main(){int n,i,c[10];while(scanf("%d",&n)!=EOF){int c1=0,c2=0,c3=0,c4=0;memset(c,0,sizeof(c));if(n==-1) break;for(i=0;i<n;i++){scanf("%d%s",&q[i].solve,&q[i].time);q[i].count=i;}sort(q,q+n,cmp);        for(i=0;i<n;i++)          c[q[i].solve]++;        for(i=0;i<n;i++)        {        if(q[i].solve==5)           q[i].fen=100;        else if(q[i].solve==4)        {        ++c1;        if(c1<=c[4]/2)            q[i].fen=95;        else            q[i].fen=90;}else if(q[i].solve==3)        {        ++c2;        if(c2<=c[3]/2)            q[i].fen=85;        else            q[i].fen=80;}else if(q[i].solve==2)        {        ++c3;        if(c3<=c[2]/2)            q[i].fen=75;        else            q[i].fen=70;}else if(q[i].solve==1)        {        ++c4;        if(c4<=c[1]/2)            q[i].fen=65;        else            q[i].fen=60;}else   q[i].fen=50;}  sort(q,q+n,cmp1);  for(i=0;i<n;i++)      printf("%d\n",q[i].fen);  printf("\n");}return 0;}


0 0
原创粉丝点击