제출 #35890

#제출 시각아이디문제언어결과실행 시간메모리
35890funcsrSure Bet (CEOI17_sure)C++14
100 / 100
149 ms3576 KiB
#include <iostream> #include <vector> #include <algorithm> #define pb push_back #define all(xs) xs.begin(), xs.end() #define rep(i, n) for (int i=0; i<(n); i++) using namespace std; int N; long long A[100000], B[100000]; int read_as_int() { string s; cin >> s; int ret = 0; bool after = false; string t = ""; for (char c : s) { if (c == '.') { after = true; continue; } if (after) t += c; else ret = 10*ret + (int)(c-'0'); } while (t.size() < 4) t += '0'; return 10000*ret + stoi(t); } signed main() { cin >> N; rep(i, N) { A[i] = read_as_int(); B[i] = read_as_int(); } sort(A, A+N, greater<long long>()); sort(B, B+N, greater<long long>()); rep(i, N-1) A[i+1] += A[i]; rep(i, N-1) B[i+1] += B[i]; int p = 0; long long m = 0, s = 0; rep(a, N) { while (p < N && B[p] < A[a]) { s = max(s, B[p] - 10000LL*(p+1)); p++; } m = max(m, s-10000LL*(a+1)); if (p < N) { m = max(m, A[a] - 10000LL*(p+1+a+1)); } } printf("%.4lf\n", (double)m/10000.0); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...