Submission #1225893

#TimeUsernameProblemLanguageResultExecution timeMemory
1225893lizi14Sure Bet (CEOI17_sure)C++20
0 / 100
0 ms324 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;
        v1.push_back(j);
        v2.push_back(k);
    }
    sort(v1.begin(),v1.end());
    sort(v2.begin(),v2.end());
    int i=v1.size(),j=v2.size();
    int ha=0;
    double ans1=0,ans2=0;
    double ans=0.0000;
    int ka=0;
    while(true){
        i--;j--;
        if(i<0 || j<0){
            break;
        }
        ans1+=v1[i];
        ka++;
        ans2+=v2[j];
        ka++;
        
        if(ans2<ans1){
            //int bati=v2[j];
            while(ans2<=ans1){
                j--;
                if(j<0){
                    break;
                }
                //bati+=v2[j];
                ans2+=v2[j];
                ka++;
                ans=max(ans,min(ans1-ka,ans2-ka));
            }
            
            //ans=max(ans,min(ans1-ka,ans2-ka));
        }
        else{
            while(ans1<=ans2){
                i--;
                if(i<0){
                    break;
                }
                
                ans1+=v1[i];
                ka++;
                ans=max(ans,min(ans1-ka,ans2-ka));
                
            }
            
            //ans=max(ans,min(ans1-ka,ans2-ka));
        }
        //cout<<ans1<<" "<<ans2<<endl;
        ans=max(ans,min(ans1-ka,ans2-ka));
    }
    printf("%.4lf",(double)ans);
    
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...