P1104求救,样例全过了,但是函数部分似乎出了一点问题。。。
#include<bits/stdc++.h>
using namespace std;
struct student {
string name;
int year;
int month;
int day;
};
student a[101];
bool cmp(student x,student y){
if(x.year<y.year) return x.name>y.name;
else if(x.year==y.year){
if(x.month<y.month) return x.name>y.name;
else if(x.month==y.month){
if(x.day<y.day) return x.name>y.name;
else if(x.day==y.day) return x.name>y.name;
else return y.name<x.name;
}
else return y.name<x.name;
}
else return y.name<x.name;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].name>>a[i].year>>a[i].month>>a[i].day;
}
sort(a+0,a+n+1,cmp);
for(int i=n;i>=1;i--){
cout<<a[i].name<<"\n";
}
return 0;
}