#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;
double a[mxN],b[mxN];
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	double ans = 0;
	cin >> n;
	for(int i = 1; i <= n; i++) cin >> a[i] >> b[i];
	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] - 2, b[1] - 2));
	ll l = 2,l1 = 2;
	double sum = a[1] - 2, sum1 = b[1] - 2;
	for(int i = 3; i <= 2 * n; i++){
		if((sum < sum1 or l1 > n) and l <= n){
			sum += a[l++] - 1;
			sum1--;
		}
		else{
			sum1 += b[l1++] - 1;
			sum--;
		}
		ans = max(ans, min(sum, sum1));
	}
	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... |