请大佬解释,为何 sort WA,但 stable_sort AC?
查看原帖
请大佬解释,为何 sort WA,但 stable_sort AC?
601892
One_last_Spider_man楼主2023/9/2 11:38

原代码(#5 WA):

#include <iostream>
#include <algorithm>
using namespace std;
struct sb{
	string na;
	int n,y,r;
}a[109];
bool cmp(sb a,sb b){
	if(a.n!=b.n) return a.n<b.n;
	if(a.y!=b.y) return a.y<b.y;
	if(a.r!=b.r) return a.r<b.r;
	return 1;
}
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;++i)
		cin>>a[i].na>>a[i].n>>a[i].y>>a[i].r;
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;++i)
		cout<<a[i].na<<endl;
	return 0;
}

改后(AC):

#include <iostream>
#include <algorithm>
using namespace std;
struct sb{
	string na;
	int n,y,r;
}a[109];
bool cmp(sb a,sb b){
	if(a.n!=b.n) return a.n<b.n;
	if(a.y!=b.y) return a.y<b.y;
	if(a.r!=b.r) return a.r<b.r;
	return 1;
}
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;++i)
		cin>>a[i].na>>a[i].n>>a[i].y>>a[i].r;
	stable_sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;++i)
		cout<<a[i].na<<endl;
	return 0;
}

啊啊啊啊啊,为啥鸭,想不明白,107题单其他题都用sort都能过,怎么就它不行。

2023/9/2 11:38
加载中...