What Is Your Grade?
2014-01-15 19:57
288 查看
[align=left]Problem Description[/align] “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! |
[align=left]Input[/align] 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. |
[align=left]Output[/align] Output the scores of N students in N lines for each case, and there is a blank line after each case. |
[align=left]Sample Input[/align]4 5 06:30:17 4 07:31:27 4 08:12:12 4 05:23:13 1 5 06:30:17 -1 |
[align=left]Sample Output[/align]100 90 90 95 100 |
#include<stdio.h>
#include<string.h>
void Exchange(int f[100],int n,int m)
{
int temp;
temp=f
;
f
=f[m];
f[m]=temp;
}
void Sort(int f[100],char time[100][10],int k)
{
for(int i=0;i<k;i++)
{
int p=k-1;
for(int j=k-1;j>i;j--)
{
if(strcmp(time[f[j]],time[f[j-1]])<0)
{
Exchange(f,j,j-1);
p=j;
}
}
if(p==k-1) break;
}
}
void Score(int score[100],char time[100][10],int solved[100],int n)
{
int f[100];
for(int i=1;i<5;i++)
{
int k=0;
for(int j=0;j<n;j++)
{
if(solved[j]==i)
{
f[k]=j;
k++;
}
}
Sort(f,time,k); //对时间进行排序
for(j=0;j<k/2;j++)
score[f[j]]=5;
}
}
void main()
{
int n;
char time[100][10];
int solved[100];
int score[100];
while(1)
{
scanf("%d",&n);
if(n<0) return;
for(int i=0;i<n;i++)
{
scanf("%d",&solved[i]);
scanf("%s",time[i]);
score[i]=0;
}
Score(score,time,solved,n);
for(i=0;i<n;i++)
{
switch (solved[i])
{
case 5 : printf("100\n"); break;
case 4 : printf("%d\n",90+score[i]); break;
case 3 : printf("%d\n",80+score[i]); break;
case 2 : printf("%d\n",70+score[i]); break;
case 1 : printf("%d\n",60+score[i]); break;
default : printf("50\n");
}
}
printf("\n");
}
}
相关文章推荐
- hdoj 1872 What Is Your Grade? 【结构体排序】
- HDOJ1084 What Is Your Grade?
- What Is Your Grade?(结构体+(sort))hd 1084
- hdu1084(What Is Your Grade?)
- 【water】HDU1084 What Is Your Grade?
- hdu 1084 What Is Your Grade? -水题
- hdu 1084 What Is Your Grade?
- 【杭电1084】What Is Your Grade?
- HDU 1084 What Is Your Grade?
- What Is Your Grade? (sort)
- 杭电OJ—— 1084 What Is Your Grade?
- HDUOJ----(1084)What Is Your Grade?
- 十二、What Is Your Grade?
- 【杭电oj】1084 - What Is Your Grade?(排序,迷之WA)
- HDOJ 1084 What Is Your Grade?
- 文章标题杭电What Is Your Grade?
- What Is Your Grade?
- What Is Your Grade?
- HDU 1048 What Is Your Grade? (简单模拟)
- HDU1084--What Is Your Grade?