Submission #468702

#TimeUsernameProblemLanguageResultExecution timeMemory
468702JosiaSure Bet (CEOI17_sure)C++14
0 / 100
1 ms204 KiB
#include <bits/stdc++.h>

#define int int64_t

using namespace std;




signed main() { // they may not be all connected!!!
    cin.tie(0);
    ios_base::sync_with_stdio(0);


    int n; cin >> n;

    vector<double> bets1(n);
    vector<double> bets2(n);

    for (int i = 0; i<n; i++) {
        cin >> bets1[i] >> bets2[i];
    }


    sort (bets1.begin(), bets1.end());
    sort (bets2.begin(), bets2.end());

    reverse(bets1.begin(), bets1.end());
    reverse(bets2.begin(), bets2.end());


    vector<double> pfs1={0}, pfs2={0};

    for (int i = 0; i<n; i++) {
        pfs1.push_back(pfs1.back()+bets1[i]);
        pfs2.push_back(pfs2.back()+bets2[i]);
    }

    double res = 0;
    
    double p1 = 1;
    double p2 = 1;
    while (p1 < n && p2<n) {
        if (pfs1[p1] < pfs2[p2]) p1++;
        else p2++;

        res = max(res, min(pfs1[p1]-p1-p2, pfs2[p2]-p1-p2));
    }



    printf("%.4lf\n",(double)res);


    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...