#include <bits/stdc++.h>
using namespace std;
#define ff first;
#define ss second
#define pb push_back
//#define int long long
int n,l,r;
long double pref[100005][3],ans,a[100005],b[100005];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i]>>b[i];
    }
    sort(a+1,a+n+1);
    sort(b+1,b+n+1);
    reverse(a+1,a+n+1);
    reverse(b+1,b+n+1);
    for(int i=1;i<=n;i++){
        pref[i][0]=pref[i-1][0]+a[i];
        pref[i][1]=pref[i-1][1]+b[i];
    }
    l=0;
    r=0;
    ans=0;
    for(int i=1;i<=n;i++){
        if(pref[l][0]<=pref[r][1]){
            l++;
        }else{
            r++;
        }
        // cout<<i<<" "<<l<<" "<<r<<" "<<pref[l][0]<<" "<<pref[r][1]<<endl;
        ans=max(ans,min(pref[l][0],pref[r][1])-i);
    }
    cout<<fixed<<setprecision(4)<<ans<<endl;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |