제출 #151731

#제출 시각아이디문제언어결과실행 시간메모리
151731forestryksSure Bet (CEOI17_sure)C++14
100 / 100
125 ms5240 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;
using ld = long double;
using pii = pair<int, int>;
#define rep(i, n) for (int (i) = 0; (i) < (n); ++(i))
#define all(x) (x).begin(), (x).end()
#define FAST_IO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);

const int MAXN = 2e5 + 5;
int n;
ld a[MAXN];
ld b[MAXN];

int main() {
    FAST_IO;
    cout.precision(10);
    cout.setf(ios::fixed);

    cin >> n;
    rep(i, n) {
        cin >> a[i] >> b[i];
    }

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

    // ld res = 0;

    // ld s1 = 0;
    // rep(i, n) {
    //     s1 += a[i];
    //     ld s2 = 0;
    //     rep(j, n) {
    //         s2 += b[j];
    //         res = max(res, min(s1, s2) - i - j - 2);
    //     }
    // }

    // cout << res << endl;

    ld s1 = 0, s2 = 0;
    int p1 = 0, p2 = 0;
    ld res = 0;
    for (int c = 0; c < n * 2; ++c) {
        if (s1 < s2 && p1 < n) {
            s1 += a[p1++];
        } else {
            s2 += b[p2++];
        }
        res = max(res, min(s1, s2) - c - 1);
    }

    // cout << res << endl;
    printf("%.4lf",(double)res);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...