这是一段WA掉的代码,可是如果在结构体排序时把>=改成>就AC了,有没有大神可以帮忙解释下是什么原理吗,萌新表示不理解哩
#include <bits/stdc++.h>
using namespace std;
#define int long long
struct node
{
int alice;
int bob;
int total;
};
int t,n,in,ans;
vector<int>a;
vector<node>b;
int galice;//galice=1时是alice,否则是bob
bool it(node m1,node m2)
{
if(m1.total>=m2.total)return 1;
return 0;
}
signed main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>t;
while(t--)
{
cin>>n;
a.clear();b.clear();
for(int i=1;i<=n;i++)
{
cin>>in;
a.push_back(in);
}
for(int i=0;i<n;i++)
{
cin>>in;
b.push_back({a[i],in,a[i]+in});
}
sort(b.begin(),b.end(),it);
galice=1;ans=0;
for(int i=0;i<n;i++)
{
if((!b[i].alice)||(!b[i].bob))continue;
if(galice)ans+=(b[i].alice-1);
else ans-=(b[i].bob-1);
galice=1-galice;
//cout<<ans<<' ';
}
cout<<ans<<'\n';
}
return 0;
}