码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1084 - What Is Your Grade?

时间:2016-06-17 23:44:42      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:

给出第 i 个学生做完的题数和时间,给学生打分

排个序就行了吧

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 #include <cstring>
 5 using namespace std;
 6 const int N=105;
 7 struct stu{
 8     int h,m,s,num,sco;
 9 }a[10][N];
10 int n,m[N],p,h,mm,s,ans[N];
11 bool cmp(stu a,stu b)
12 {
13     if(a.h==b.h)
14     {
15         if(a.m==b.m) return a.s<b.s;
16         return a.m<b.m;
17     }
18     return a.h<b.h;
19 }
20 void fuc(stu a[],int m,int t)
21 {
22     for(int i=1;i<=m;i++)
23     {
24         if(i<=m/2) ans[a[i].num]=t+5;
25         else ans[a[i].num]=t;
26     }
27 }
28 int main()
29 {
30     while(~scanf("%d",&n)&&n!=-1)
31     {
32         memset(m,0,sizeof(m));
33         for(int i=1;i<=n;i++)
34         {
35             scanf("%d %d:%d:%d",&p,&h,&mm,&s);
36             m[p]++;
37             a[p][m[p]].num=i;
38             a[p][m[p]].h=h;
39             a[p][m[p]].m=mm;
40             a[p][m[p]].s=s;
41         }
42         for(int i=1;i<=4;i++) sort(a[i]+1,a[i]+m[i]+1,cmp);
43         for(int i=1;i<=m[0];i++) ans[a[0][i].num]=50;
44         for(int i=1;i<=m[5];i++) ans[a[5][i].num]=100;
45         for(int i=1;i<=4;i++) fuc(a[i],m[i],10*i+50);
46         for(int i=1;i<=n;i++) printf("%d\n",ans[i]);
47         puts("");
48     }
49 }

 

HDU 1084 - What Is Your Grade?

标签:

原文地址:http://www.cnblogs.com/nicetomeetu/p/5595298.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!