Submission #964480

#TimeUsernameProblemLanguageResultExecution timeMemory
964480PringSure Bet (CEOI17_sure)C++17
100 / 100
81 ms5208 KiB
#include <bits/stdc++.h> using namespace std; #ifdef MIKU string dbmc = "\033[1;38;2;57;197;187m", dbrs = "\033[0m"; #define debug(x...) cout << dbmc << "[" << #x << "]: ", dout(x) void dout() { cout << dbrs << endl; } template <typename T, typename ...U> void dout(T t, U ...u) { cout << t << (sizeof...(u) ? ", " : ""); dout(u...); } #else #define debug(...) 39 #endif #define fs first #define sc second #define mp make_pair #define FOR(i, j, k) for (int i = j, Z = k; i < Z; i++) using ll = long long; typedef pair<int, int> pii; const int MXN = 100005; int n; double a[MXN], b[MXN]; double p[MXN], q[MXN]; double calc(int i) { int l = 0, r = n + 1; while (l + 1 < r) { int mid = (l + r) >> 1; ((p[i] - mid >= q[mid] - i) ? l : r) = mid; } return max(min(p[i] - l, q[l] - i), min(p[i] - r, q[r] - i)); } void miku() { cin >> n; FOR(i, 0, n) cin >> a[i] >> b[i]; sort(a, a + n, greater<double>()); sort(b, b + n, greater<double>()); FOR(i, 0, n) p[i + 1] = p[i] + a[i] - 1; FOR(i, 0, n) q[i + 1] = q[i] + b[i] - 1; double ans = 0.0; FOR(i, 1, n + 1) ans = max(ans, calc(i)); cout << fixed << setprecision(4) << ans << '\n'; } int32_t main() { cin.tie(0) -> sync_with_stdio(false); cin.exceptions(cin.failbit); miku(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...