80分求助!!

P1104 生日

> 如果有两个同学生日相同,输入靠后的同学先输出。
by liuzimingc @ 2021-11-22 13:17:11


@[liuzimingc](/user/421781) 谢谢!我看一下
by darren361 @ 2021-11-22 13:18:37


cmp那里 if(a.y!=b.y)return a.y<b.y; else if(a.m!=b.m)return a.m<b.m; else if(a.d!=b.d)return a.d<b.d; else return a.no>b.no; 还有结构体,还要多拿一个变量no记录顺序
by 201012280925LSY @ 2021-12-17 22:14:05


``` #include<iostream> #include<cstring> #include<algorithm> using namespace std; struct st{ string name; int y,m,d; int type; }a[10010]; int cmp(st a,st b){ if(a.y!=b.y) return a.y<b.y; if(a.y==b.y&&a.m!=b.m) return a.m<b.m; if(a.y==b.y&&a.m==b.m&&a.d!=b.d) return a.d<b.d; if(a.y==b.y&&a.m==b.m&&a.d==b.d) return a.type>b.type; } int main(){ int n; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i].name>>a[i].y>>a[i].m>>a[i].d; a[i].type=i; } sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++) cout<<a[i].name<<endl; } ``` # **完整AC代码**
by 宇智波 @ 2022-01-19 17:22:23


@[darren361](/user/452294)
by 宇智波 @ 2022-01-20 14:31:58


|