# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
153407 | 2019-09-14T06:09:55 Z | junodeveloper | Sure Bet (CEOI17_sure) | C++14 | 2 ms | 376 KB |
#include <bits/stdc++.h> #define sz(x) ((int)x.size()) #define all(x) (x).begin(), (x).end() #define fi first #define se second using namespace std; typedef long long ll; typedef long double ld; typedef pair<int,int> pii; typedef pair<ll,ll> pll; int n; double a[100010],b[100010]; int main() { scanf("%d",&n); int i; for(i=1;i<=n;i++)scanf("%lf%lf",a+i,b+i); sort(a+1,a+n+1); sort(b+1,b+n+1); for(i=1;i<=n;i++) a[i+1]+=a[i],b[i+1]+=b[i]; int k; double ans=0; for(k=1;k<n+n;k++) { int lo=max(0,k-n),hi=min(n,k); while(lo<hi) { int mid=(lo+hi+1)/2; if(a[n]-a[n-mid]<b[n]-b[n-(k-mid)]) lo=mid; else hi=mid-1; } ans=max(ans,a[n]-a[n-lo]-k); if(lo<k) ans=max(ans,b[n]-b[n-(k-lo-1)]-k); } ans=max(ans,min(a[n],b[n])-n-n); printf("%.4f",ans); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 376 KB | Output is correct |
4 | Incorrect | 2 ms | 256 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 376 KB | Output is correct |
4 | Incorrect | 2 ms | 256 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 256 KB | Output is correct |
2 | Correct | 2 ms | 376 KB | Output is correct |
3 | Correct | 2 ms | 376 KB | Output is correct |
4 | Incorrect | 2 ms | 256 KB | Output isn't correct |
5 | Halted | 0 ms | 0 KB | - |