cjf 君想调查学校 OI 组每个同学的生日,并按照年龄从大到小的顺序排序。但 cjf 君最近作业很多,没有时间,所以请你帮她排序。
输入格式
输入共有 n + 1n+1 行,
第 11 行为 OI 组总人数 nn;
第 22 行至第 n+1n+1 行分别是每人的姓名 ss、出生年 yy、月 mm、日 dd。
输出格式
输出共有 nn 行,
即 nn 个生日从大到小同学的姓名。(如果有两个同学生日相同,输入靠后的同学先输出)
输入输出样例
#include<bits/stdc++.h>
using namespace std;
struct node
{
string a;
int b,c,d,level;
}x[105];
bool cmp(node e,node f)
{if(e.b!=f.b)
return e.b<f.b;
else{
if(e.c!=f.c)
return e.c<f.c;
else if(e.c==f.c&&e.d!=f.d)
return e.d<f.d;
else if(e.b==f.b&&e.c==f.c&&e.d==f.d)
return e.level>f.level;
}
}
int main()
{
int m;
cin>>m;
for(int i=0;i<m;i++)
{cin>>x[i].a>>x[i].b>>x[i].c>>x[i].d;x[i].level=i;
}
sort(x,x+m,cmp);
for(int i=0;i<m;i++)
cout<<x[i].a<<endl;
}