제출 #491002

#제출 시각아이디문제언어결과실행 시간메모리
491002kawaiiSure Bet (CEOI17_sure)C++14
100 / 100
107 ms6712 KiB
#include <bits/stdc++.h>
using namespace std; 
 
int n;
long double a[100005], b[100005], sum[100005], ans = 0; 

void solve(){  
    sort(a + 1, a + n + 1);
    sort(b + 1, b + n + 1);
    for(int i = n; i >= 1; i--) sum[i] = sum[i + 1] + b[i];
    long double suma = 0;
    for(int i = n; i >= 1; i--){
        suma += a[i];
        int l = 0, r = n + 1;
        while(r - l > 1){
            int mid = (l + r) / 2;
            if(sum[mid] > suma) l = mid;
            else r = mid;
        }
        int num = (n - i + 1) + (n - r + 1);  
        ans = max(ans, min(suma, sum[r]) - num);
        ans = max(ans, min(suma, sum[r] + b[l]) - num - 1); 
    }
    cout << fixed << setprecision(4) << ans;
}
 
signed main(){  
    ios_base::sync_with_stdio(NULL); cin.tie(nullptr); cout.tie(nullptr);
    cin >> n;
    for(int i = 1; i <= n; i++) cin >> a[i] >> b[i]; 
    solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...