제출 #1027556

#제출 시각아이디문제언어결과실행 시간메모리
1027556vjudge1Sure Bet (CEOI17_sure)C++17
100 / 100
88 ms5144 KiB
#include <bits/stdc++.h> using namespace std; #define ld long double const int N = 1e5+5; int n; ld a[N], b[N], sufB[N]; signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(4); cin >> n; for (int i = 0; i < n; i++) { cin >> a[i] >> b[i]; } sort(a, a+n); sort(b, b+n); sufB[n] = 0; for (int i = n-1; i >= 0; i--) { sufB[i] = sufB[i+1] + b[i]; } ld ans = 0; ld sumA = 0; for (int i = n-1; i >= 0; i--) { sumA += a[i]; int l = 0; int r = n-1; while (l < r) { int mid = (l+r) >> 1; if (sufB[mid] >= sumA) l = mid+1; else r = mid; } ans = max(ans, min(sumA, sufB[l]) - (n-i) - (n-l)); if (l-1 >= 0) ans = max(ans, min(sumA, sufB[l-1]) - (n-i) - (n-l+1)); if (l-2 >= 0) ans = max(ans, min(sumA, sufB[l-2]) - (n-i) - (n-l+2)); } cout << max((ld)0, ans) << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...