제출 #1019653

#제출 시각아이디문제언어결과실행 시간메모리
1019653overwatch9Sure Bet (CEOI17_sure)C++17
0 / 100
1 ms348 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
    int n;
    cin >> n;
    vector <pair <ll, ll>> nums(n);
    for (int i = 0; i < n; i++) {
        double a, b;
        cin >> a >> b;
        nums[i].first = (a * 10000);
        nums[i].second = (b * 10000);
    }
    vector <ll> a(n), b(n);
    for (int i = 0; i < n; i++) {
        a[i] = nums[i].first;
        b[i] = nums[i].second;
    }
    sort(a.begin(), a.end());
    sort(b.begin(), b.end());
    ll l = a.back(), r = b.back();
    ll ans = max(0LL, min(l, r) - 20000);
    for (int cnt = 4, pt = n-2; cnt <= n*2; cnt += 2, pt--) {
        bool chosen = false;
        if (l < r) {
            l += a[pt];
            chosen = true;
        }
        else
            r += b[pt];
        ans = max(ans, min(l, r) - (cnt-1) * 10000);
        if (chosen)
            r += b[pt];
        else
            l += a[pt];
        ans = max(ans, min(l, r) - cnt * 10000);
    }
    cout << fixed << setprecision(4) << (double)ans / 10000 << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...