#include <bits/stdc++.h> 
using namespace std;
#define ll long long
#define pb push_back
#define ff first
#define sd second
#define debug(x) cerr << #x << "----> " << x << endl;
//#pragma GCC optimize("unroll-loops")
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("O3")
const int mxN = 1e6 + 5;
ll n,a[mxN],b[mxN];
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	ll ans = 0;
	cin >> n;
	ll sz = 10000;
	for(int i = 1; i <= n; i++){
		double a1,b1;
		cin >> a1 >> b1;
		a[i] = a1 * sz;
		b[i] = b1 * sz;
	}
	sort(a + 1, a + n + 1);
	reverse(a + 1, a + n + 1);
	sort(b + 1, b + n + 1);
	reverse(b + 1, b + n + 1);
	ans = max(ans, min(a[1] - 20000, b[1] - 20000));
	ll l = 2,l1 = 2,sum = a[1] - 20000, sum1 = b[1] - 20000;
	for(int i = 3; i <= 2 * n; i++){
		if((sum < sum1 or l1 > n) and l <= n){
			sum += a[l++] - 10000;
			sum1 -= 10000;
		}
		else{
			sum1 += b[l1++] - 10000;
			sum -= 10000;
		}
		ans = max(ans, min(sum, sum1));
	}
	cout << ans / 10000 << "." << ans % 10000;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |