样例下载下来没有问题,但是就是过不了(T_T)

P1104 生日

太复杂了 ```cpp #include<bits/stdc++.h> using namespace std; struct node{ string name; int year,mon,day,id; }; node a[105]; int n; bool cmp(node x,node y){ if(x.year!=y.year){ return x.year<y.year; } if(x.mon!=y.mon){ return x.mon<y.mon; } if(x.day==y.day && x.mon==y.mon){ return x.id>y.id; } return x.day<y.day; } signed main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i].name>>a[i].year>>a[i].mon>>a[i].day; a[i].id=i; } sort(a+1,a+1+n,cmp); for(int i=1;i<=n;i++){ cout<<a[i].name<<"\n"; } return 0; } ``` 这么做好一些
by Locus_ybl @ 2021-10-19 22:01:20


@[liurongxuan2009](/user/490944) 谢dalao,已AC.
by dlmm @ 2021-10-19 22:07:17


第14行错了,附上极具缩短版: ```cpp #include<bits/stdc++.h> using namespace std; struct stu{ string name; int y,m,d,n; }arr[110]; bool cmp(stu a,stu b){ return a.y==b.y?a.m==b.m?a.d==b.d?a.n>b.n:a.d<b.d:a.m<b.m:a.y<b.y; } int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++){ cin>>arr[i].name>>arr[i].y>>arr[i].m>>arr[i].d; arr[i].n=i; } sort(arr+1,arr+n+1,cmp); for(int i=1;i<=n;i++){ cout<<arr[i].name<<endl; } return 0; } ```
by blow @ 2021-10-19 22:18:28


@[dlmm](/user/361712)
by blow @ 2021-10-20 20:33:41


@[shiyifan0822](/user/545610) 谢谢关心,已经修改正确并AC。
by dlmm @ 2021-10-20 21:35:55


|