Submission #46294

#TimeUsernameProblemLanguageResultExecution timeMemory
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...