#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()-1,j=v2.size()-1;
    //int ha=0;
    double ans1=0,ans2=0;
    double ans=0.0000;
    int ka=0;
    //i--;j--;
    while(true){
        if(i<0 && j>=0){
            ans2+=v2[j];
            ka++;
            j--;
            ans=max(ans,min(ans1-ka,ans2-ka));
            //ans=max(ans,min(ans1-ka,ans2-ka));
            continue;
        }
        else if(i>=0 && j<0){
            ans1+=v1[i];
            ka++;
            i--;
            ans=max(ans,min(ans1-ka,ans2-ka));
            continue;
        }
        else if(i<0 and j<0)break;
        if(ans1>ans2){
            ans2+=v2[j];
            ka++;
            j--;
        }else{
            ans1+=v1[i];
            ka++;
            i--;
        }
        //ans=max(ans,ans1-ka);
        //cout<<ans1<<" "<<ans2<<endl;
        ans=max(ans,min(ans1-ka,ans2-ka));
    }
    printf("%.4lf",(double)ans);
    
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |