제출 #46294

#제출 시각아이디문제언어결과실행 시간메모리
46294RezwanArefin01Sure Bet (CEOI17_sure)C++17
100 / 100
209 ms15364 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> ii; 

const int N = 1e5 + 10; 
double a[N], b[N];

int main(int argc, char const *argv[]) {
#ifdef LOCAL_TESTING
	freopen("in", "r", stdin);
#endif
	int n; 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 ans = 0; 
	for(int i = 0; i <= n; i++) {
		int lo = 0, hi = n; 
		while(lo <= hi) {
			int m1 = lo + (hi - lo) / 3; 
			int m2 = hi - (hi - lo) / 3; 
			double f1 = min(a[i], b[m1]) - i - m1; 
			double f2 = min(a[i], b[m2]) - i - m2;
			ans = max({ans, f1, f2}); 
			if(f1 < f2) lo = m1 + 1; 
			else hi = m2 - 1; 
		}
	}
	cout << fixed << setprecision(4) << ans << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...