一道水题,测试数据都对,不知道错哪里
程序代码:
#include<stdio.h> int main() { int t,n,h,m,s,a[100][3],same[100][2],i,temp; while(scanf("%d",&n)&&(n>0)) { for(i=0;i<n;i++) a[i][2]=0; for(i=0;i<n;i++) { scanf("%d %d:%d:%d",&t,&h,&m,&s); a[i][0]=t;a[i][1]=h*3600+m*60+s; if(a[i][0]==5) a[i][2]=100; if(a[i][0]==0) a[i][2]=50; } m=0; for(i=0;i<n;i++) { if(a[i][0]>0&&a[i][0]<5&&a[i][2]==0) { for(h=i;h<n;h++) if(a[i][0]==a[h][0]) {same[m][0]=h;same[m][1]=a[h][1];m++;} for(h=0;h<m;h++) for(s=h+1;s<m;s++) if(same[h][1]>same[s][1]) { temp=same[h][1];same[h][1]=same[s][1];same[s][1]=temp; temp=same[h][0];same[h][0]=same[s][0];same[s][0]=temp; } for(h=0;h<m;h++) if(m%2==1) if(a[same[h][0]][1]<same[(m-1)/2][1]) a[same[h][0]][2]=55+a[same[h][0]][0]*10; else a[same[h][0]][2]=50+a[same[h][0]][0]*10; else if(a[same[h][0]][1]<=same[(m-1)/2][1]) a[same[h][0]][2]=55+a[same[h][0]][0]*10; else a[same[h][0]][2]=50+a[same[h][0]][0]*10; } } for(i=0;i<n;i++) printf("%d\n",a[i][2]); printf("\n"); } return 0; }
题目来啦:http://acm.hdu.