你这个代码看起来有点麻烦
你可以吧月份和天数**换算成年**这样就方便很多了
然后最后一个测试点是因为有两个生日相同的人先输出编号较后面的(就是~~输入顺序~~)
### 下面是我的代码awa:
```cpp
#include<bits/stdc++.h>
using namespace std;
struct stu{
string name;
int yy;
int mm;
int dd;
double sum;
int bian;
}a[10005];
bool su(const stu &l,const stu &r){
if(l.sum!=r.sum){
return l.sum<r.sum;
}
if(l.sum==r.sum){
return l.sum>r.sum;
}
}
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
cin>>a[i].name>>a[i].yy>>a[i].mm>>a[i].dd;
a[i].sum=1.0*a[i].yy+1.0*a[i].mm/12+a[i].dd*1.0/365;
a[i].bian=i;
}
sort(a+1,a+n+1,su);
for(int i=1;i<=n;i++){
if(a[i].sum==a[i+1].sum&&a[i].bian<a[i+1].bian){
string s;
s=a[i].name;
a[i].name=a[i+1].name;
a[i+1].name=s;
}
cout<<a[i].name<<endl;
}
return 0;
}
```
## 求关!!!!
by wyl123ly @ 2023-07-21 14:48:12
@[wyl123ly](/user/1041871)
哦对了顺便说一句这个是AC代码
by wyl123ly @ 2023-07-21 14:49:22