Submission #343170

#TimeUsernameProblemLanguageResultExecution timeMemory
343170benedict0724Sure Bet (CEOI17_sure)C++17
100 / 100
111 ms3692 KiB
#include <bits/stdc++.h>

using namespace std;

double a[100002];
double b[100002];

bool cmp(double x, double y){
    return x > y;
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    int n;
    cin >> n;
    for(int i=1;i<=n;i++){
        cin >> a[i] >> b[i];
    }
    sort(a+1, a+n+1, cmp);
    sort(b+1, b+n+1, cmp);

    double profit_a = 0, profit_b = 0, ans = 0;

    for(int x = 0, y = 0; x + y < 2*n ;){
        if(x == n){
            y++;
            profit_a += -1;
            profit_b += b[y] - 1;
            ans = max(ans, min(profit_a, profit_b));
            continue;
        }
        if(y == n){
            x++;
            profit_a += a[x] - 1;
            profit_b += -1;
            ans = max(ans, min(profit_a, profit_b));
            continue;
        }

        if(profit_a > profit_b){
            y++;
            profit_a += -1;
            profit_b += b[y] - 1;
            ans = max(ans, min(profit_a, profit_b));
        }

        else{
            x++;
            profit_a += a[x] - 1;
            profit_b += -1;
            ans = max(ans, min(profit_a, profit_b));
        }
    }

    printf("%.4lf", ans);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...