呜呜为什么加个等号这题就会wa
查看原帖
呜呜为什么加个等号这题就会wa
1159333
A_Little_BadBoy楼主2024/1/14 22:47

这是一段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;
}

2024/1/14 22:47
加载中...