What Is Your Grade?
2016-07-21 09:17
447 查看
What Is Your Grade?(结构体+(sort))
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d
& %I64u
Submit Status
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
Sample Output
输入时记录下输入顺序先按照做对体数排序再按照时间排序求出每个人应该得到的分数再按照输入顺序排序
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d
& %I64u
Submit Status
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
4 5 06:30:17 4 07:31:27 4 08:12:12 4 05:23:13 1 5 06:30:17 -1
Sample Output
100 90 90 95 100
输入时记录下输入顺序先按照做对体数排序再按照时间排序求出每个人应该得到的分数再按照输入顺序排序
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; struct node{ int s; char t[20]; int sco; int i; }a[111]; bool cmp(node a,node b){ if(a.s!=b.s) return a.s>b.s; else return strcmp(a.t,b.t)<0; } bool cmp1(node a,node b){ return a.i<b.i; } int N; int main(){ while(scanf("%d", &N) == 1 && N > 0){ int c[6]={0}; for(int i=0;i<N;i++){ scanf("%d %s",&a[i].s,a[i].t); a[i].i=i;//记录出现次序 c[a[i].s]++; } sort(a,a+N,cmp); for(int i=1;i<5;i++){ if(c[i]==1) continue; c[i]/=2; } for(int i=0;i<N;i++){ if(a[i].s==5) a[i].sco=100; else if(a[i].s==0) a[i].sco=50; else{ int k=1; int l=a[i].s; while(a[i].s==l&&i<N){ if(k<=c[l]) a[i].sco=100-(5-l)*10+5; else a[i].sco=100-(5-l)*10; k++;i++; } i--; } }//算出每个人应该得到的分数 sort(a,a+N,cmp1); for(int i=0;i<N;i++) printf("%d\n",a[i].sco); printf("\n"); } return 0; }
相关文章推荐
- SQL查询
- 偶数求和 hd 2015
- 65个面试回答技巧
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- 字符读取流缓冲区-读一行的方法readLine()
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- 杂记:Atmel sama5d3 Universal Asynchronous Receiver Transmitter (UART)
- Opencv中在图片上显示文本