题目1023:EXCEL排序
#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std;const int N=100000;
struct stu{string num;string name;int score;
}a[N];bool cmp1(struct stu x,struct stu y){return x.num<y.num;
}
bool cmp2(struct stu x,struct stu y){if(x.name==y.name){return x.num<y.num;}return x.name<y.name;
}
bool cmp3(struct stu x,struct stu y){if(x.score==y.score){return x.num<y.num;}return x.score<y.score;
}
int main(){int n,c,kase=0;while(scanf("%d%d",&n,&c)!=EOF){if(n==0){break;}for(int i=0;i<n;i++){cin>>a[i].num>>a[i].name>>a[i].score;}switch(c){case 1:sort(a,a+n,cmp1);break;case 2:sort(a,a+n,cmp2);break;case 3:sort(a,a+n,cmp3);break;default:break;}cout<<"Case "<<++kase<<":"<<endl;for(int i=0;i<n;i++){cout<<a[i].num << " "<<a[i].name<<" "<<a[i].score<<endl;}}return 0;
}