#include <stdio.h>
#include <string.h>
//#include <malloc.h>
int main()
{
struct
{
char name[20];
int hour;
int minute;
int pai;
}a[15];
int n;
int t=1;
while(scanf("%d",&n),n)
{
int i, b[15], x,j;
char s[20];
//a=(struct *)malloc(sizeof(struct)*n);
//b=(int *)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
{
//scanf("%s%d:%d",a[i].name,&a[i].hour,&a[i].minute);
scanf("%s%d:%d",a[i].name,&a[i].hour,&a[i].minute);
}
for(i=0;i<n;i++)
{
b[i]=a[i].hour*100+a[i].minute;
}
for(j=1;j<n;j++)
{
for(i=0;i<n-j;i++)
{
if(b[i]>b[i+1]||(b[i]==b[i+1]&&strcmp(a[i].name,a[i+1].name)>0))
{
strcpy(s,a[i].name);
strcpy(a[i].name,a[i+1].name);
strcpy(a[i+1].name,s);
x=b[i];
b[i]=b[i+1];
b[i+1]=x;
}
}
}
/*for(i=0;i<n;i++)
{
printf("%s %d\n",a[i].name,b[i]);
}*/
if(t!=1) // MB,这句话坑死我了 Output a blank line between two cases. 让我PE一个多小时,郁闷
printf("\n");
printf("Case #%d\n",t);
t++;
for(i=0;i<n;i++)
a[i].pai=i+1;
for(i=0;i<n;i++)
{
if(b[i]==b[i-1])
{
printf("%s %d\n",a[i].name,a[i-1].pai);
}
else
printf("%s %d\n",a[i].name,a[i].pai);
}
//free(a);
//free(b);
}
return 0;
}
HDU2115
最新推荐文章于 2017-04-08 19:31:26 发布