제출 #445968

#제출 시각아이디문제언어결과실행 시간메모리
445968negar_aSure Bet (CEOI17_sure)C++14
100 / 100
134 ms8260 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;
#define S second
#define F first
#define pb push_back
#define mp make_pair
#define pii pair <int, int>
#define fast_io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

const int maxn = 1e5 + 5;
ld a[maxn], b[maxn], ps1[maxn], ps2[maxn];

int main(){
	fast_io;
	int n;
	cin >> n;
	for(int i = 0; i < n; i ++){
		cin >> a[i] >> b[i];
	}
	sort(a, a + n, greater <ld>());
	sort(b, b + n, greater <ld>());
	
	ps1[0] = a[0]; ps2[0] = b[0];
	for(int i = 1; i < n; i ++){
		ps1[i] = ps1[i - 1] + a[i];
		ps2[i] = ps2[i - 1] + b[i];
		//cout << ps1[i] << " " << ps2[i] << endl;
	}
	ld ans = 0;
	for(int i = 0; i < n; i ++){
		int x = lower_bound(ps2, ps2 + n, ps1[i]) - ps2;
		if(x == n){
			continue;
		}
		ans = max(ans, ps1[i] - (i + x + 2));
	}
	for(int i = 0; i < n; i ++){
		int x = lower_bound(ps1, ps1 + n, ps2[i]) - ps1;
		if(x == n){
			continue;
		}
		ans = max(ans, ps2[i] - (i + x + 2));
	}
	cout << setprecision(4) << fixed << ans;
	
	return 0;
}
/*
4
1.4 3.7
1.2 2
1.6 1.4
1.9 1.5
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...