제출 #537929

#제출 시각아이디문제언어결과실행 시간메모리
537929theysoldtheworldSure Bet (CEOI17_sure)C++14
100 / 100
102 ms5032 KiB
#include <bits/stdc++.h> using namespace std; double Get(vector<double> a , vector<double> b) { int n = (int)a.size(); double h = 0 , t = 0; double ans = 0; int id = 0; for (int i = 0 ; i < n ; i++) { h += a[i]; double new_t = t - 1; int add = 0; double cur = min(h , new_t); while (id < n && min(h - (add + 1) , new_t + b[id]) > cur) { add += 1; new_t += b[id]; cur = min(h - add , new_t); id += 1; } h -= add; t = new_t; ans = max(ans , min(h , t)); } return ans; } int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector<double> a(n) , b(n); for (int i = 0 ; i < n ; i++) { cin >> a[i] >> b[i]; a[i] -= 1; b[i] -= 1; } sort(a.rbegin() , a.rend()); sort(b.rbegin() , b.rend()); double ans = max(Get(a , b) , Get(b , a)); cout << fixed << setprecision(4) << ans << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...