제출 #553029

#제출 시각아이디문제언어결과실행 시간메모리
553029HanksburgerSure Bet (CEOI17_sure)C++17
100 / 100
91 ms5164 KiB
#include <bits/stdc++.h> using namespace std; long long a[100005], b[100005], suma[100005], sumb[100005]; long long f(long long x, long long y) { return min(suma[x]-y*10000, sumb[y]-x*10000); } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); long long n, ans=0; cin >> n; for (long long 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<long long>()); sort(b+1, b+n+1, greater<long long>()); for (long long i=1; i<=n; i++) suma[i]=suma[i-1]+a[i]; for (long long i=1; i<=n; i++) sumb[i]=sumb[i-1]+b[i]; for (long long i=0; i<=n; i++) { long long l=0, r=n; while (l<r) { long long mid1=(l*2+r)/3, mid2=(l+r*2+1)/3; long long 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...