Submission #928572

#TimeUsernameProblemLanguageResultExecution timeMemory
928572ind1vSure Bet (CEOI17_sure)C++11
60 / 100
2001 ms10220 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 5; int n; long double a[N], b[N]; int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i] >> b[i]; } long double lo = 0.0F, hi = 1e8; for (int ite = 1; ite <= 100; ite++) { long double mid = (lo + hi) * 0.5F; bool f = false; priority_queue<long double> aq, bq; for (int i = 1; i <= n; i++) { aq.push(a[i] - 1); bq.push(b[i] - 1); } long double a = 0, b = 0; for (int x = 0, y = 0; x <= n; x++) { while (y + 1 <= n && a - (y + 1) >= mid) { y++; b += bq.top(); bq.pop(); } f |= (a - y >= mid && b - x >= mid); a += aq.top(); aq.pop(); } if (f) { lo = mid; } else { hi = mid; } } cout << fixed << setprecision(4) << lo << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...