F
来源:互联网 发布:淘宝代码怎么用的 编辑:程序博客网 时间:2024/05/16 15:51
F - What Is Your Grade?
“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!
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!
A test case starting with a negative integer terminates the input and this test case should not to be processed.
45 06:30:174 07:31:274 08:12:124 05:23:1315 06:30:17-1
100909095100
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct stu { int n; char time[10]; int turn; int k; int p; } data[120]; bool cmp1(stu A,stu B) { if(A.n==B.n) { return strcmp(A.time,B.time)<0; } return A.n>B.n; } bool cmp2(stu A,stu B) { return A.turn<B.turn; } int main() { int N,i,k[100+25],a,b,c,d,j,m; while(scanf("%d",&N)) { if(N==-1) break; a=1,b=1,c=1,d=1,j=-1; for(i=0;i<N;i++) { scanf("%d %s",&data[i].n,data[i].time); data[i].turn=i; } sort(data,data+N,cmp1); for(i=0;i<N;i++) { if(data[i].n==5) { data[i].k=100; j=i; } else if(data[i].n==data[i+1].n&&data[i].n==4) a++; else if(data[i].n==data[i+1].n&&data[i].n==3) b++; else if(data[i].n==data[i+1].n&&data[i].n==2) c++; else if(data[i].n==data[i+1].n&&data[i].n==1) d++; else data[i].k=50; } m=j+1; for(i=m;i<m+a/2;i++) data[i].k=95; for(i=m+a/2;i<m+a;i++) data[i].k=90; for(i=m+a;i<m+a+b/2;i++) data[i].k=85; for(i=m+a+b/2;i<m+a+b;i++) data[i].k=80; for(i=m+a+b;i<m+a+b+c/2;i++) data[i].k=75; for(i=m+a+b+c/2;i<m+a+b+c;i++) data[i].k=70; for(i=m+a+b+c;i<m+a+b+c+d/2;i++) data[i].k=65; for(i=m+a+b+c+d/2;i<m+a+b+c+d;i++) data[i].k=60; for(i=0;i<N;i++) data[i].p=data[i].k; sort(data,data+N,cmp2); for(i=0;i<N;i++) printf("%d\n",data[i].p); printf("\n"); } return 0; }