제출 #510363

#제출 시각아이디문제언어결과실행 시간메모리
510363MonarchuwuSure Bet (CEOI17_sure)C++17
100 / 100
133 ms3532 KiB
#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
typedef long long ll;
typedef double db;

const int N = 1e5 + 9;
int n;
db a[N], b[N];

int main() {
    cin.tie(NULL)->sync_with_stdio(false);
    cin >> n;
    for (int i = 1; i <= n; ++i) cin >> a[i] >> b[i];

    sort(a + 1, a + n + 1, greater<db>());
    sort(b + 1, b + n + 1, greater<db>());

    db ans(0), suma(0), sumb(0);
    int i(0), j(0);
    for (int k = 1; k <= n * 2; ++k) {
        if (i != n)
            suma += a[++i];
        else sumb += b[++j];

        while (i && j < n && min(suma, sumb) < min(suma - a[i], sumb + b[j + 1])) {
            suma -= a[i--];
            sumb += b[++j];
        }

        while (i < n && j && min(suma, sumb) < min(suma + a[i + 1], sumb - b[j])) {
            suma += a[++i];
            sumb -= b[j--];
        }

        ans = max(ans, min(suma, sumb) - k);
    }

    cout << fixed << setprecision(4) << ans << '\n';
}
/**  /\_/\
 *  (= ._.)
 *  / >0  \>1
**/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...