#include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct STU { char name[101]; int age,mark; }stu[1000]; bool cmp(STU a,STU b) { if(a.mark<b.mark) return true; else if(a.mark>b.mark) return false; else { if(!strcmp(a.name,b.name)) return a.age<b.age; return strcmp(a.name,b.name)<0?true:false; } } int main() { int n,i; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) scanf("%s%d%d",stu[i].name,&stu[i].age,&stu[i].mark); sort(stu,stu+n,cmp); for(i=0;i<n;i++) printf("%s %d %d\n",stu[i].name,stu[i].age,stu[i].mark); } return 0; } /************************************************************** Problem: 2198 User: admin Language: C++ Result: Accepted Time:13 ms Memory:1260 kb ****************************************************************/