제출 #1225761

#제출 시각아이디문제언어결과실행 시간메모리
1225761lizi14Sure Bet (CEOI17_sure)C++20
0 / 100
0 ms320 KiB
#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    vector<double>v1,v2;
    for(int i=0; i<n; i++){
        double j,k;
        cin>>j>>k;
        if(j>=k){
            v1.push_back(j);
        }
        else v2.push_back(k);
    }
    if(v1.size()==0 || v2.size()==0){
        cout<<0<<endl;
        exit(0);
    }
    sort(v1.begin(),v1.end());
    sort(v2.begin(),v2.end());
    int i=v1.size()-1,j=v2.size()-1;
    int ha=0;
    double ans1=0,ans2=0;
    double ans=-1e9;
    int ka=0;
    while(ha==0){
        
        if(i<0 || j<0){
            break;
        }
        
        ans1+=v1[i];
        ka++;
        ans2+=v2[j];
        ka++;
        if(v1[i]>v2[j]){
            //int bati=v2[j];
            while(int(ans2)!=int(ans1)){
                j--;
                if(j<0){
                    ha=1;
                    break;
                }
                //bati+=v2[j];
                ans2+=v2[j];
                ka++;
            }
        }
        else{
            while(int(ans1)!=int(ans2)){
                i--;
                if(i<0){
                    ha=1;
                    break;
                }
                
                ans1+=v1[i];
                ka++;
            }
        }
        //cout<<ans1<<" "<<ans2<<endl;
        ans=max(ans,min(ans1-ka,ans2-ka));
    }
    // for(auto g:v1){
    //     cout<<g<<" ";
    // }
    // cout<<endl;
    // for(auto g:v2){
    //     cout<<g<<" ";
    // }
    cout<<fixed;
    cout<<setprecision(4);
    cout<<ans<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...