Submission #1261958

#TimeUsernameProblemLanguageResultExecution timeMemory
1261958new_accSure Bet (CEOI17_sure)C++20
100 / 100
55 ms3408 KiB
#include <bits/stdc++.h>
using namespace std;

#define ld long double

const int base = 1e6 + 7;
ld a[base];
ld b[base];

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);
    int n; cin >> n;

    for (int i = 0; i < n; i ++)
        cin >> a[i] >> b[i];

    sort(a, a + n);
    sort(b, b + n);

    ld wydane = 0;
    ld zysa = 0;
    ld zysb = 0;
    ld wyn = 0;
    int i = n - 1, j = n - 1;

    while (i >= 0 && j >= 0){

        if (zysa < zysb)
            zysa += a[i--];
        else
            zysb += b[j--];
        wydane ++;

        wyn = max(wyn, min(zysa - wydane, zysb - wydane));
    }

    while (i >= 0){
        zysa += a[i--];
        wydane ++;
        wyn = max(wyn, min(zysa - wydane, zysb - wydane));
    }

    while (j >= 0){
        zysb += b[j--];
        wydane ++;
        wyn = max(wyn, min(zysa - wydane, zysb - wydane));
    }

    // cerr << zysa << ' ' << zysb << ' ' << wydane << '\n';

    cout << fixed << setprecision(4) << wyn << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...