# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
576205 | 2022-06-12T13:50:25 Z | Pietra | Sure Bet (CEOI17_sure) | C++14 | 1 ms | 212 KB |
#include<bits/stdc++.h> using namespace std ; const int maxn = 1e5 + 5 ; int n ; double x[maxn], y[maxn], p_x[maxn], p_y[maxn] ; bool cmp(double a, double b){ return a >= b ; } int main(){ scanf("%d",&n) ; for(int i = 1 ; i <= n ; i++) scanf("%lf%lf", &x[i],&y[i]) ; sort(x + 1, x + 1 + n, cmp) ; sort(y + 1, y + 1 + n, cmp) ; for(int i = 1 ; i <= n ; i++) p_x[i] = p_x[i-1] + x[i], p_y[i] = p_y[i-1] + y[i] ; double ans = 0 ; for(int i = 1 ; i <= n ; i++){ int ini = 1, fim = n, mid, best = 0 ; while(ini <= fim){ mid = (ini + fim)>>1 ; if(p_x[i] - mid - i <= p_y[mid] - mid - i) best = mid, fim = mid - 1 ; else ini = mid + 1 ; } ans = max(ans, min(p_x[i] - (double)best - (double)i, p_y[best] - (double)i - (double)best)) ; } printf("%.4lf\n", ans) ; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Incorrect | 1 ms | 212 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Incorrect | 1 ms | 212 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Incorrect | 1 ms | 212 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |