http://acm.hdu.edu.cn/showproblem.php?pid=2115
注意两点:
1:输出格式;
2:结构体排序
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
struct sa
{
char name[55];
int a;
int b;
int num;
char ch;
}data[15];
int cmp(sa x,sa y)
{
if(x.a != y.a)
return x.a < y.a;
else if(x.b != y.b)
return x.b < y.b;
else
return strcmp(x.name,y.name)<0;
}
int main()
{
int m,cas=1;
bool flag=0;
while(cin>>m,m)
{
if(flag)
cout<<endl;
flag=1;
for(int i=0; i<m; i++)
cin>>data[i].name>>data[i].a>>data[i].ch>>data[i].b;
sort(data,data+m,cmp);
cout<<"Case #"<<cas++<<endl;
int sum=1;
data[0].num=1;
for(int i=1; i<m; i++)
{
if(data[i].a == data[i-1].a && data[i].b == data[i-1].b)
data[i].num=sum;
else
{
data[i].num=sum;
sum=i+1;
data[i].num=i+1;
}
}
for(int i=0; i<m; i++)
cout<<data[i].name<<" "<<data[i].num<<endl;
}
return 0;
}