#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define niga ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define yes cout<<"YES\n"
#define no cout<<"NO\n"
#define F first
#define S second
#define sz() size()
#define pb push_back
#define pf push_front
#define all(a) a.begin(), a.end()
#define bll(a) a.rbegin(), a.rend();
#define file(s) if (fopen(s".in", "r")) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout)
/*
a u t h o r (a b a);
──▒▒▒▒▒────▒▒▒▒▒────▒▒▒▒▒────▄████▄─────
─▒─▄▒─▄▒──▒─▄▒─▄▒──▒─▄▒─▄▒──███▄█▀───────
─▒▒▒▒▒▒▒──▒▒▒▒▒▒▒──▒▒▒▒▒▒▒─▐████─────────
─▒▒▒▒▒▒▒──▒▒▒▒▒▒▒──▒▒▒▒▒▒▒──█████▄───────
─▒─▒─▒─▒──▒─▒─▒─▒──▒─▒─▒─▒───▀████▀─────
*/
const int N = 2e5 + 9, mod = 1e9 + 7;
int n;
double a[N],b[N];
void solve(){
cin >> n;
for (int i=1;i<=n;i++)cin >> a[i] >> b[i];
sort(a + 1,a + n + 1, greater<double>());
sort(b + 1,b + n + 1, greater<double>());
for (int i = 1; i <= n; i++){a[i] += a[i - 1];b[i] += b[i - 1];}
double res = 0;
for (int i = 0; i <= n; i++){
ll l = 0, r = n;
while (l <= r){
ll md = (l + r) >> 1;
ll x = a[i] - i - md, y = b[md] - i - md;
if (x > y){
l = md + 1;
}else{
r = md - 1;
}
}
if (l <= n)res = max(res, min(a[i] - l - i, b[l] - i - l));
if (r >= 0)res = max(res, min(a[i] - r - i, b[r] - r - i));
}
cout << fixed << setprecision(4) << res <<'\n';
}
signed main(){
niga;
int aba = 1;
// file("name");
// cin >> aba;
while (aba --){
solve();
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |