Submission #1225769

#TimeUsernameProblemLanguageResultExecution timeMemory
1225769giorgi123glmSure Bet (CEOI17_sure)C++20
100 / 100
44 ms2012 KiB
#include <initializer_list> #include <iomanip> #include <iostream> #include <map> #include <queue> #include <set> #include <vector> #include <algorithm> #include <functional> #include <fstream> using namespace std; #define int long long signed main () { ios::sync_with_stdio (false); cin.tie (0); cout.tie (0); int N = 0; cin >> N; vector <double> a (N + 1); vector <double> b (N + 1); for (int i = 1; i <= N; i++) cin >> a[i] >> b[i]; sort (a.begin() + 1, a.end(), greater ()); sort (b.begin() + 1, b.end(), greater ()); int cnt = 0; int bind = 1; double asum = 0; double bsum = 0; double ans = 0; for (int i = 1; i <= N; i++) { asum += a[i]; cnt++; while (bind <= N && bsum + b[bind] <= asum) { bsum += b[bind++], cnt++; ans = max ( ans, min ( asum, bsum ) - cnt ); } ans = max ( ans, min ( asum, bsum ) - cnt ); if (bind <= N) ans = max ( ans, min ( asum, bsum + b[bind] ) - cnt - 1.0 ); } printf("%.4lf",(double)ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...