求助,不知错哪

P1104 生日

这样交换相当于没换。 题目还要求“如果有两个同学生日相同,输入靠后的同学先输出”。
by ud2_ @ 2022-01-21 22:13:07


```cpp #include<bits/stdc++.h> using namespace std; struct stu { string name; int n,y,r; }a[110]; int main() { int n; cin>>n; for(int i=0;i<n;i++) cin>>a[i].name>>a[i].n>>a[i].y>>a[i].r; for(int i=0;i<n;i++) { for(int j=0;j<n-1;j++) { if(a[j].n*10000+a[j].y*100+a[j].r>=a[j+1].n*10000+a[j+1].y*100+a[j+1].r) { stu t; t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for(int i=0;i<n;i++) cout<<a[i].name<<endl; return 0; } 80 ``` 80分了,再求助一下
by peaple_with_a_dream @ 2022-01-22 15:01:25


```cpp #include<iostream> #include<algorithm> using namespace std; struct stu{ string b; long long c,d,e,k; }a[101]; long long n; bool cmp(stu f,stu g){ if(f.c!=g.c) return f.c<g.c; else{ if(f.d!=g.d) return f.d<g.d; else{ if(f.e!=g.e) return f.e<g.e; else return f.k>g.k; } } } int main(){ cin>>n; for(long long i=1;i<=n;i++){ cin>>a[i].b>>a[i].c>>a[i].d>>a[i].e; a[i].k=i; } stable_sort(a+1,a+n+1,cmp); for(long long i=1;i<=n;i++) cout<<a[i].b<<endl; return 0; } ```
by xumengxing @ 2022-02-15 12:20:03


|