Submission #131552

#TimeUsernameProblemLanguageResultExecution timeMemory
131552SamAndSure Bet (CEOI17_sure)C++17
100 / 100
125 ms5272 KiB
#include <bits/stdc++.h> using namespace std; const int N = 100005; int n; double a[N], b[N]; double sa[N], sb[N]; double ans; int main() { ios_base::sync_with_stdio(false); cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(4); cin >> n; for (int i = 1; i <= n; ++i) { cin >> a[i] >> b[i]; } sort(a + 1, a + n + 1); sort(b + 1, b + n + 1); for (int i = n; i >= 1; --i) { sa[i] = sa[i + 1] + a[i]; sb[i] = sb[i + 1] + b[i]; } double ans = 0; for (int i = n; i >= 1; --i) { int l = 1, r = n; while ((r - l) > 3) { int m = (l + r) / 2; if ((sa[i] - (n - i + 1) - (n - m + 1)) <= (sb[m] - (n - i + 1) - (n - m + 1))) l = m; else r = m; } for (int m = max(1, l - 5); m <= min(n, r + 5); ++m) { ans = max(ans, min((sa[i] - (n - i + 1) - (n - m + 1)), (sb[m] - (n - i + 1) - (n - m + 1)))); } } cout << ans << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...