Submission #46387

#TimeUsernameProblemLanguageResultExecution timeMemory
46387RockyBSure Bet (CEOI17_sure)C++17
100 / 100
431 ms16880 KiB
/// In The Name Of God #pragma GCC optimize("Ofast") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #include <bits/stdc++.h> #define f first #define s second #define pb push_back #define pp pop_back #define mp make_pair #define sz(x) (int)x.size() #define sqr(x) ((x) * 1ll * (x)) #define all(x) x.begin(), x.end() #define Kazakhstan ios_base :: sync_with_stdio(0), cin.tie(0), cout.tie(0); #define nl '\n' #define ioi exit(0); typedef long long ll; typedef long double ld; typedef unsigned long long ull; const int N = (int)5e5 + 7; const int inf = (int)1e9 + 7; const int mod = (int)1e9 + 7; const ll linf = (ll)1e18 + 7; const ld eps = 1e-4; const int dx[] = {-1, 0, 1, 0, 1, -1, -1, 1}; const int dy[] = {0, 1, 0, -1, 1, -1, 1, -1}; using namespace std; int n; double a[N], b[N]; double s1[N], s2[N]; int main() { #ifdef IOI2018 freopen ("in.txt", "r", stdin); freopen ("B.out", "w", stdout); #endif Kazakhstan cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i] >> b[i]; } sort(a + 1, a + 1 + n); sort(b + 1, b + 1 + n); for (int i = 1; i <= n; i++) { s1[i] = s1[i - 1] + a[n - i + 1]; s2[i] = s2[i - 1] + b[n - i + 1]; } for (int i = 1; i <= n; i++) { s1[i] -= i, s2[i] -= i; //cerr << s1[i] << ' ' << s2[i] << nl; } double ans = 0; for (int i = 0; i <= n; i++) { double l = 0, r = inf, res = 0; for (int t = 1; t <= 200; t++) { double x = (l + r) / 2; int j = s1[i] - x; if (j >= 0 && s2[min(j, n)] - i >= x) res = x, l = x; else r = x; } ans = max(ans, res); } cout << setprecision(4) << fixed << ans; ioi }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...