# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
877990 | 2023-11-24T01:41:57 Z | phong | Sure Bet (CEOI17_sure) | C++17 | 0 ms | 2396 KB |
#include <bits/stdc++.h> #define int long long using ll = long long; const int nmax = 1e6 + 5; const int lg = 20; const int mod = 1e9 + 7; const ll oo = 1e18; #define fi first #define se second #define pii pair<int, int> using namespace std; int n, q, t; double a[nmax], b[nmax]; bool check(double k){ for(int i = 0; i <= n; ++i){ int l = 0, r = n, it1 = -1, it2 = -1; while(l <= r){ int mid = r + l >> 1; if(a[i] - i - mid >= k){ it1 = mid; l = mid + 1; } else r = mid - 1; } if(it1 != -1){ if(a[i] - i - it1 >= k && double(b[it1] - it1 - i) >= k) return 1; } } return 0; } main(){ ios_base::sync_with_stdio(false); cin.tie(NULL), cout.tie(NULL); cin >> n; for(int i = 1; i <= n; ++i) cin >> a[i] >> b[i]; sort(a + 1, a + 1 + n, greater<double> ()); sort(b + 1, b + 1 + n, greater<double> ()); for(int i = 1; i <= n; ++i){ a[i] += a[i - 1]; b[i] += b[i - 1]; } double l = 0, r = 2e8, kq = -1; for(int t = 1; t <= 50; ++t){ double mid = (r + l) / 2; if(check(mid)){ kq = mid; l = mid; } else r = mid; } cout << fixed << setprecision(4) << kq; } /* ai */
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 2396 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 2396 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 2396 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |