Submission #553028

#TimeUsernameProblemLanguageResultExecution timeMemory
553028HanksburgerSure Bet (CEOI17_sure)C++17
20 / 100
1 ms340 KiB
#include <bits/stdc++.h> using namespace std; int a[100005], b[100005], suma[100005], sumb[100005]; int f(int x, int y) { return min(suma[x]-y*10000, sumb[y]-x*10000); } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, ans=0; cin >> n; for (int i=1; i<=n; i++) { double x, y; cin >> x >> y; a[i]=x*10000.0-9999.9; b[i]=y*10000.0-9999.9; } sort(a+1, a+n+1, greater<int>()); sort(b+1, b+n+1, greater<int>()); for (int i=1; i<=n; i++) suma[i]=suma[i-1]+a[i]; for (int i=1; i<=n; i++) sumb[i]=sumb[i-1]+b[i]; for (int i=0; i<=n; i++) { int l=0, r=n; while (l<r) { int mid1=(l*2+r)/3, mid2=(l+r*2+1)/3; int res1=f(i, mid1), res2=f(i, mid2); if (res1>res2) r=mid2-1; else if (res1<res2) l=mid1+1; else { l=mid1; r=mid2-1; } } ans=max(ans, f(i, l)); } cout << fixed << setprecision(4) << ans/10000.0; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...