一道水题,测试数据都对,不知道错哪里
程序代码:#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.









