Submission #701678

#TimeUsernameProblemLanguageResultExecution timeMemory
701678GrandTiger1729Sure Bet (CEOI17_sure)C++17
100 / 100
76 ms5056 KiB
#include <iostream>
#include <iomanip>
#include <algorithm>
using namespace std;

int main(){
    cin.tie(0)->sync_with_stdio(0);
    cout << fixed << setprecision(4);
    int n; cin >> n;
    double a[n], b[n];
    for (int i = 0; i < n; i++){
        cin >> a[i] >> b[i];
    }
    sort(a, a + n, greater<double>());
    sort(b, b + n, greater<double>());
    double prefa[n + 1]{}, prefb[n + 1]{};
    for (int i = 0; i < n; i++){
        prefa[i + 1] = prefa[i] + a[i];
        prefb[i + 1] = prefb[i] + b[i];
    }
    double ans = 0;
    int pa = 0, pb = 0;
    while (pa <= n && pb <= n){
        if (prefa[pa] < prefb[pb])
            pa++;
        else
            pb++;
        ans = max(ans, min(prefa[pa], prefb[pb]) - pa - pb);
    }
    while (pa <= n){
        pa++;
        ans = max(ans, min(prefa[pa], prefb[pb]) - pa - pb);
    }
    while (pb <= n){
        pb++;
        ans = max(ans, min(prefa[pa], prefb[pb]) - pa - pb);
    }
    cout << ans << '\n';
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...