Submission #1261960

#TimeUsernameProblemLanguageResultExecution timeMemory
1261960new_accSure Bet (CEOI17_sure)C++20
100 / 100
70 ms3400 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long double ld;

bool cmp(ld a, ld b){
    return a > b;
}

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

    cout << fixed << setprecision(4);

    int n;
    cin >> n;

    vector<ld> a(n), b(n);
    for(int i = 0; i < n; i++){
        ld x, y;
        cin >> x >> y;
        a[i] = x;
        b[i] = y;
    }
    sort(a.begin(), a.end(), cmp);
    sort(b.begin(), b.end(), cmp);

    ld wyn = 0;
    int iter1 = 1, iter2 = 1;

    ld sum1 = a[0], sum2 = b[0];
    wyn = max(wyn, min(sum1, sum2) - iter1 - iter2);

    while(iter1 < n && iter2 < n){
        if(sum1 < sum2){
            sum1 += a[iter1];
            iter1++;
        }else{
            sum2 += b[iter2];
            iter2++;
        }
        wyn = max(wyn, min(sum1, sum2) - iter1 - iter2);
    }
    while(iter1 < n){
        sum1 += a[iter1];
        iter1++;
        wyn = max(wyn, min(sum1, sum2) - iter1 - iter2);
    }
    while(iter2 < n){
        sum2 += b[iter2];
        iter2++;
        wyn = max(wyn, min(sum1, sum2) - iter1 - iter2);
    }

    cout << wyn;



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