题意:
对于给出的人按时间排序。时间相同按人名从小到大排序。
思路:
把时间人名都做成字符串。
#include <iostream>
#include <stdio.h>
#include <cstring>
#include <string.h>
#include <algorithm>
using namespace std;
struct node
{ string name;
string time;
}a[105];
int cmp(node x,node y)
{
if(x.time!=y.time)
return x.time<y.time;
else
return x.name<y.name;
}
int main()
{
int n;
int cnt=1;
while(cin>>n,n)
{
string s ;
if(cnt!=1)
cout<<endl;
for(int i=1;i<=n;i++)
{
cin>>a[i].name;
cin>>a[i].time;
}
sort(a+1,a+1+n,cmp);
printf("Case #%d\n",cnt++);
int acc=0;
for(int i=1;i<=n;i++)
{
if(a[i].time!=a[i-1].time )
{
acc=0;
cout<<a[i].name<<" "<<i-acc;
}
else
{
acc++;
cout<<a[i].name<<" "<<i-acc;
}
cout<<endl;
}
}
}