Abu_Dumbledore @ 2023-11-11 19:09:57
有大佬帮我看看哪里错了吗,最后两个测试点WA(感谢
64分代码:
#include<bits/stdc++.h>
using namespace std;
int y,m,d,q;//年,月,日,共q个数据
struct str{
string n;//姓名
long long int j;//=y*10000+m*100+d
int i;//输入序号
}a[101];
bool cmp(str a, str b){
if(a.j<b.j) return 1;
else if(a.j==b.j){
if(a.i<b.i) return 1;
else return 0;
}
else return 0;
}
int main(){
cin>>q;
for(int w=1;w<=q;w++){
cin>>a[w].n>>y>>m>>d;
a[w].i=w;
a[w].j=y*10000+m*100+d;
}
stable_sort(a+1,a+q+1,cmp);
for(int w=1;w<=q;w++){
cout<<a[w].n<<endl;
}
}
by __zhy__ @ 2023-11-11 19:18:17
@Abu_Dumbledore 你应该把年月日逐个比较
by Abu_Dumbledore @ 2023-11-11 19:45:38
@zhenghaoyi 年月日累加应该没问题吧 比如: 1990.10.11=19001011; 1995.06.24=19950624; 不影响比较吧
by LittleMonkeySP @ 2023-12-17 09:17:29
其实呢,这个题目说的是
如果有两个同学生日相同,输入靠后的同学先输出
所以,应该是完全不稳定的排序
(我也被坑了