题目描述
小明的班级同学们很不喜欢小明,小明想做点什么改变同学们的印象,现在小明想调查班级中每个同学的生日,并按照从大到小的顺序排序。但和蔼的编程老师总让他去放鸭子了,没有时间,所以请你帮他排序。
输入
有2行, 第1行为班级总人数n; 第2行至第n+1行分别是每人的姓名s、出生年y、月m、日d。
输出
有n行, 即n个生日从大到小同学的姓名。(如果有两个同学生日相同,输入靠后的同学先输出)
样例输入
4 Yangchu 1992 4 23 Qiujingya 1993 10 13 Luwu 1991 8 1 rongcheng 1993 10 13
样例输出
Luwu Yangchu rongcheng Qiujingya
C++:
cpp
#include<bits/stdc++.h>
using namespace std;
struct asd{
string id;
int n1,n2,n3;
}asdasd[25];
bool kp(asd a,asd b){
if(a.n1!=b.n1)return a.n1<b.n1;
if(a.n2!=b.n2)return a.n2<b.n2;
if(a.n3!=b.n3)return a.n3<b.n3;
return 1;
}
int main(){
int a;
cin>>a;
for(int i=1;i<=a;i++){
cin>>asdasd[i].id>>asdasd[i].n1>>asdasd[i].n2>>asdasd[i].n3;
}
sort(asdasd+1,asdasd+a+1,kp);
for(int i=1;i<=a;i++){
cout<<asdasd[i].id<<endl;
}
return 0;
}