爆零求助

P1104 生日

额,还是排序。。。
by _rzm120412_ @ 2023-09-09 11:26:34


直接给代码行吗 ```cpp #include <bits/stdc++.h> using namespace std; struct Node{ string s; int y,m,d,num; }a[110]; bool cmp(Node n1,Node n2){ if(n1.y<n2.y||n1.y==n2.y&&n1.m<n2.m||n1.y==n2.y&&n1.m==n2.m&&n1.d<n2.d||n1.y==n2.y&&n1.m==n2.m&&n1.d==n2.d&&n1.num>n2.num) return true; else return false; } int n,i; int main(){ cin>>n; for(i=0;i<n;i++){ cin>>a[i].s>>a[i].y>>a[i].m>>a[i].d; a[i].num=i+1; } sort(a,a+n,cmp); for(i=0;i<n;i++){ cout<<a[i].s<<endl; } return 0; } ```
by Amberhart @ 2023-09-09 11:29:58


@[liyirong567](/user/955954)
by Amberhart @ 2023-09-09 11:31:51


查到一处错误,然后代码变成了这样: ```cpp #include<bits/stdc++.h> using namespace std; struct student{ int flag=0; int year; int month; int day; string name; }a[105]; int main(){ int n; cin>>n; for(int i=0;i<n;i++){ cin>>a[i].name>>a[i].year>>a[i].month>>a[i].day; } for(int j=0;j<n;j++){ for(int i=1;i<n;i++){ if(a[i].year<a[i-1].year){ swap(a[i],a[i-1]); } else if(a[i].year==a[i-1].year&&a[i].month<a[i-1].month){ swap(a[i],a[i-1]); } else if(a[i].year==a[i-1].year&&a[i].month==a[i-1].month&&a[i].day<a[i-1].day){ swap(a[i],a[i-1]); } else if(a[i].year==a[i-1].year&&a[i].month==a[i-1].month&&a[i].day==a[i-1].day&&a[i].flag==0||a[i-1].flag==0){ swap(a[i],a[i-1]); a[i].flag=1; a[i-1].flag=1; } } } for(int i=0;i<n;i++){ cout<<a[i].name<<endl; } return 0; } ```
by shooting__star @ 2023-09-09 11:31:54


```cpp #include<bits/stdc++.h> using namespace std; int i,j,k,n,m; struct node{ string name; int y,m,d,bian; }a[1001]; int cmp(node x,node y){ return x.y<y.y||x.y==y.y&&x.m<y.m||x.y==y.y&&x.m==y.m&&x.d<y.d||x.y==y.y&&x.m==y.m&&x.d==y.d&&x.bian>y.bian; } int main(){ cin>>n; for(i=1;i<=n;i++){ cin>>a[i].name>>a[i].y>>a[i].m>>a[i].d; a[i].bian=i; } sort(a+1,a+1+n,cmp); for(i=1;i<=n;i++) cout<<a[i].name<<endl; return 0; } ``` 好力,写完了
by _rzm120412_ @ 2023-09-09 11:32:02


@[liyirong567](/user/955954) 这边建议写$cmp$代码短一点
by _rzm120412_ @ 2023-09-09 11:33:41


@[liyirong567](/user/955954) 解决了吗?
by _rzm120412_ @ 2023-09-09 11:36:36


|