Submission #1221487

#TimeUsernameProblemLanguageResultExecution timeMemory
1221487vako_pSure Bet (CEOI17_sure)C++20
100 / 100
21 ms1864 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define ff first #define sd second #define debug(x) cerr << #x << "----> " << x << endl; //#pragma GCC optimize("unroll-loops") //#pragma GCC optimize("Ofast") //#pragma GCC optimize("O3") const int mxN = 1e6 + 5; ll n,a[mxN],b[mxN]; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); ll ans = 0; cin >> n; string s; for(int i = 1; i <= n; i++){ cin >> s; ll val = 1,idx = s.size() - 1; for(int j = 0; j < s.size(); j++){ if(s[j] == '.'){ idx = j; break; } } for(int j = 0; j < 5 - (s.size() - idx); j++) val *= 10; for(int j = s.size() - 1; j >= 0; j--){ if(s[j] == '.') continue; a[i] += val * (s[j] - '0'); val *= 10; } cin >> s; val = 1;idx = s.size() - 1; for(int j = 0; j < s.size(); j++){ if(s[j] == '.'){ idx = j; break; } } for(int j = 0; j < 5 - (ll)(s.size() - idx); j++) val *= 10; for(int j = s.size() - 1; j >= 0; j--){ if(s[j] == '.') continue; b[i] += val * (s[j] - '0'); val *= 10; } } sort(a + 1, a + n + 1); reverse(a + 1, a + n + 1); sort(b + 1, b + n + 1); reverse(b + 1, b + n + 1); ans = max(ans, min(a[1] - 20000, b[1] - 20000)); ll l = 2,l1 = 2,sum = a[1] - 20000, sum1 = b[1] - 20000; for(int i = 3; i <= 2 * n; i++){ if((sum < sum1 or l1 > n) and l <= n){ sum += a[l++] - 10000; sum1 -= 10000; } else{ sum1 += b[l1++] - 10000; sum -= 10000; } ans = max(ans, min(sum, sum1)); } cout << ans / 10000 << "."; s = to_string(ans % 10000); while(s.size() < 4) s = "0" + s; cout << s; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...