제출 #484353

#제출 시각아이디문제언어결과실행 시간메모리
484353ponytailSure Bet (CEOI17_sure)C++17
100 / 100
143 ms3584 KiB
#include <bits/stdc++.h>
using namespace std;
int main() {
    int N; cin >> N;
    double A[N+1], B[N+1];
    for(int i=1; i<=N; i++) cin >> A[i] >> B[i];
    sort(A+1, A+N+1);
    sort(B+1, B+N+1);
    int pta = N, ptb = N;
    double suma = 0, sumb = 0;
    double ans = 0;
    int cnt = 0;
    while(pta || ptb) {
        cnt++;
        if(suma > sumb) {
            if(ptb == 0) break;
            sumb += B[ptb--];
        }
        else if(suma < sumb) {
            if(pta == 0) break;
            suma += A[pta--];
        }
        else {
            if(pta == 0) sumb += B[ptb--];
            else if(ptb == 0) suma += A[pta--];
            else if(A[pta] > B[ptb]) suma += A[pta--];
            else sumb += B[ptb--];
        }
        ans = max(ans, min(suma, sumb) - cnt);
    }
    cout << fixed << setprecision(4) << ans << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...