제출 #1225820

#제출 시각아이디문제언어결과실행 시간메모리
1225820putuputuSure Bet (CEOI17_sure)C++20
100 / 100
77 ms3684 KiB
#include<bits/stdc++.h>
using namespace std;

signed main(){
    int n;
    cin >> n;
    vector<pair<double, double>> a(n);
    for(int i=0; i<n; i++){
        cin >> a[i].first >> a[i].second;
    }
    vector<double> f;
    vector<double> s;
    for(int i=0; i<n; i++){
        f.push_back(a[i].first);
        s.push_back(a[i].second);
    }
    sort(f.begin(), f.end());
    reverse(f.begin(), f.end());
    sort(s.begin(), s.end());
    reverse(s.begin(), s.end());
    int cnt1=0;
    int cnt2=0;
    double sum1=0;
    double sum2=0;
    double ans=0;
    while(cnt1<n or cnt2<n){
        if(cnt1==n){
            sum2+=s[cnt2];
            cnt2++;
        }else if(cnt2==n){
            sum1+=f[cnt1];
            cnt1++;
        }else if(sum1<=sum2){
            sum1+=f[cnt1];
            cnt1++;
        }else{
            sum2+=s[cnt2];
            cnt2++;
        }
        ans=max(ans, min(sum1, sum2)-cnt1-cnt2);
    }
    cout << fixed << setprecision(4) << ans; 
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...