Submission #1282051

#TimeUsernameProblemLanguageResultExecution timeMemory
1282051nlsosadSure Bet (CEOI17_sure)C++20
100 / 100
112 ms3560 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define f first #define s second using ld = long double; ld a[100001], b[100001]; signed main(){ int n; cin >> n; for (int i = 1;i<=n;++i){ cin >> a[i] >> b[i]; } ld res = 0; ld l = 0, r = 1e9; sort(a+1, a+n+1); sort(b+1, b+n+1); while(abs(l-r) >= 1e-6){ ld mid = (l+r)/2.0; ld s1 = 0, s2 = 0; int t1 = n, t2 = n; while(s1 < mid or s2 < mid){ bool check = false; while(s1 < mid and t1 >= 1){ s1 += a[t1]-1.0; check = true; s2 -= 1.0; t1--; } while(s2 < mid and t2>= 1){ s2 += b[t2]-1.0; s1 -= 1.0; check = true; t2--; } if(!check)break; } if(s1 >= mid and s2>=mid){ res = mid; l = mid; }else r = mid; } cout << fixed << setprecision(4) << res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...