Source Code
#include <bits/stdc++.h> 
#define int long long
#define all(c) begin(c), end(c)
#define rall(c) rbegin(c), rend(c)
#define SORT(c) sort(all(c))
#define rSORT(c) sort(rall(c))
#define f first
#define s second
#define pb push_back
#define endl "\n"
using namespace std;
void solve();
bool pr[2000001];//sieve(2000001);
int fact[100000];//factorial();
int choose(int n, int r){return r<0||r>n?0:(r==0||r==n)?1:choose(n-1,r-1)+choose(n-1,r);}
void factorial(){fact[0]=1;for(int i=1;i<10001;i++)fact[i]=fact[i-1]*i%7901;}
void sieve(int n){for(int i=2;i<=n;i++)pr[i]=1;for(int i=2;i<=n;i++)if(pr[i])for(int j=i*2;j<=n;j+=i)pr[j]=0;}
int countSubarrays(int s, int k){if(s<k)return 0;return(s-k+1)*(s-k+2)/2;}
int power(int b, int e){int r=1;while(e>0){if(e % 2 != 0)r*=b;b*= b;e/=2;}return r;}
int bitsNeeded(int n){int count = 0;while (n > 0){count++;n >>= 1;}return count;}
int32_t main(){ios::sync_with_stdio(false);cin.tie(0);int t = 1;int i = 1;
    //cin >> t;
    while(t--){//cout<<"_________________________________\n";cout<<"Test case Number: "<<i++<<endl<<endl;
        solve();
    }
}
void solve(){
    int n;cin >> n;
    int l = 0;
    int r = 0;
    vector<int> v(n);
    int ans = 0;
    for(int i = 0;i<n;i++){
        int x,y;cin >> x >> y;
        if(x >= y){
            ans += x;
            l++;
        }
        else{
            ans += y;
            r++;
        }
        
        v[i] = x-y;
    }
    if(l < r){
        int all = (r-l)/2;
        rSORT(v);
        for(int i = 0;i<n;i++){
            if(all == 0) break;
            if(v[i] <= 0){
                ans += v[i];
                all--;
            }
            if(all == 0) break;
        }
    }
    else{
        int all = (l-r)/2;
        SORT(v);
        for(int i = 0;i<n;i++){
            if(all == 0) break;
            if(v[i] >= 0){
                ans -= v[i];
                all--;
            }
            if(all == 0) break;
        }
    }
    cout << ans;
}
Copy
Two Teams barakat
GNU G++17
4 ms
1.1 MB
Wrong Answer