#include <bits/stdc++.h>
#define ll long long
#define Sayan ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define file(s) if (fopen(s".in", "r")) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout)
#define all(a) a.begin() , a.end()
#define Int(a,x) a+1 , a+1+x
#define sz() size()
#define F first
#define S second
#define pb push_back
#define yes cout << "YES\n"
#define no cout << "NO\n"
#define pii pair<ll,ll>
using namespace std ;
const ll N = 1e5+5;
const ll INF = 1e18;
const ll mod = 1e9+7;
/*
ll binpow(ll a , ll b){
if(b == 0) return 1;
if(b%2) return binpow(a , b-1) * a % mod;
ll c = binpow(a , b/2) % mod;
return c*c%mod;
}
*/
double l[N],r[N];
void solve(){
ll n;
cin>>n;
double mx=0;
set<double>st1,st2;
double sum1,sum2;
for(ll i=1;i<=n;i++){
cin>>l[i]>>r[i];
sum1+=l[i];
sum2+=r[i];
st1.insert(l[i]);
st2.insert(r[i]);
}
double cnt1=n,cnt2=n;
mx=max(mx,min(sum1-(n*2),sum2-(n*2)));
sort(l+1,l+1+n);
reverse(l+1,l+1+n);
sort(r+1,r+1+n);
reverse(r+1,r+1+n);
for(ll i=n*2-1;i>=2;i--){
if(cnt1==1){
cnt2--;
double mn=*st2.begin();
sum2-=mn;
st2.erase(*st2.begin());
}
else if(cnt2==1){
cnt1--;
double mn=*st1.begin();
sum1-=mn;
st1.erase(*st1.begin());
}
else {
if(sum1>=sum2){
cnt1--;
double mn=*st1.begin();
sum1-=mn;
st1.erase(*st1.begin());
}
else {
cnt2--;
double mn=*st2.begin();
sum2-=mn;
st2.erase(*st2.begin());
}
}
// cout<<sum1<<" "<<sum2<<" "<<i<<"\n";
mx=max(mx,min(sum1-i,sum2-i));
}
cout<<fixed<<setprecision(4)<<mx<<"\n";
}
signed main () {
Sayan;
ll t=1;
//cin>>t;
while(t--)solve();
}
Compilation message
sure.cpp: In function 'void solve()':
sure.cpp:52:8: warning: 'sum2' may be used uninitialized in this function [-Wmaybe-uninitialized]
52 | sum2-=mn;
| ~~~~^~~~
sure.cpp:62:4: warning: 'sum1' may be used uninitialized in this function [-Wmaybe-uninitialized]
62 | if(sum1>=sum2){
| ^~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Incorrect |
0 ms |
348 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Incorrect |
0 ms |
348 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Incorrect |
0 ms |
348 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |