1
已解决
王鑫烨
中级光能
中级光能
1332 调查年龄
题目描述 Description
酷町堂想调查学校每个同学的生日,然后将同学们按照年龄从大到小的顺序进行排序。
输入描述 Input Description
有2行,
第1行为总人数n(n<=10000);
第2行至第n+1行分别是每人的姓名s、出生年份y、出生月份m、出生日d。
输出描述 Output Description
有n行,
排序后从大到小同学的姓名。(需要注意的是如果有两个同学生日相同,输入靠后的同学优先输出)
样例输入 Sample Input
3
zhang 1992 4 23
wang 1993 10 13
bai 1991 8 1
样例输出 Sample Output
bai
zhang
wang
我的代码:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
struct stu{
string s;
int y,m,d;
}a[10001];
bool cmp(stu a,stu b)
{
if(a.y!=b.y){
return a.y<b.y;
}
if(a.m!=b.m){
return a.m<a.m;
}
if(a.d!=b.d){
return a.d<b.d;
}
return a.d>b.d;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].s>>a[i].y>>a[i].m>>a[i].d;
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++){
cout<<a[i].s;
}
return 0;
}
只求速速指点!悬赏我可以加