1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int maxn=100010; struct Stu{ int id; char name[10]; int grade; }stu[maxn]; int n,c;
bool cmp(const Stu& a,const Stu& b){ if(c==1) return a.id<b.id; else if(c==2&&strcmp(a.name,b.name)!=0) return strcmp(a.name,b.name)<0; else if(c==3&&a.grade!=b.grade) return a.grade<b.grade; else return a.id<b.id; }
int main(){ scanf("%d%d",&n,&c); for(int i=0;i<n;i++){ scanf("%d%s%d",&stu[i].id,&stu[i].name,&stu[i].grade); } sort(stu,stu+n,cmp); for(int i=0;i<n;i++){ printf("%06d %s %d\n",stu[i].id,stu[i].name,stu[i].grade); } return 0; }
|