Submission #878019

#TimeUsernameProblemLanguageResultExecution timeMemory
878019wiiSure Bet (CEOI17_sure)C++17
0 / 100
0 ms2396 KiB
#include <bits/stdc++.h> using namespace std; typedef double db; typedef long long ll; typedef long double ld; #define int ll typedef pair<int, int> pii; #define lx (id << 1) #define rx (lx | 1) #define gcd __gcd #define pb push_back #define all(x) (x).begin(), (x).end() #define bit(i, mask) ((mask) >> (i) & 1) #define reset(x, val) memset(x, val, sizeof(x)) #define foru(i,a,b) for(int i = (a); i <= (b); ++i) #define ford(i,a,b) for(int i = (a); i >= (b); --i) #define FastIO ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); template<typename T> bool maximize(T &res, const T &val) { if (res < val) { res = val; return true; } return false; } template<typename T> bool minimize(T &res, const T &val) { if (val < res) { res = val; return true; } return false; } const ll Linf = 0x3f3f3f3f3f3f3f3f; const int Inf = 0x3f3f3f3f; const ll Mod = 1e9 + 7; const ll Mod2 = ll(1e9) + 9; const int Lim = 1e6 + 5; const int inv6 = 166666668; // #define Sieve #ifdef Sieve vector<int> pr; vector<int> lpf; void Linear_sieve(int n = Lim) { pr.assign(1, 2); lpf.assign(n + 1, 2); for (int x = 3; x <= n; x += 2) { if (lpf[x] == 2) pr.push_back(lpf[x] = x); for (int i = 1; i < pr.size() && pr[i] <= lpf[x] && pr[i] * x <= n; ++i) lpf[pr[i] * x] = pr[i]; } } #endif /// ====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*==== const int base = 3; const int N = 1e6 + 5; const int K = log2(N) + 1; const int dx[] = {+1, -1, 0, 0}; const int dy[] = {0, 0, +1, -1}; const int block_size = sqrt(2e9) + 2; int n; db a[N], b[N]; int check(db val) { foru(i, 1, n) { db cur = a[i] - val; if (cur < 0) continue; int p = floor(cur); if (b[p] - i >= val) return true; } return false; } void solve() { cin >> n; foru(i, 1, n) { cin >> a[i] >> b[i]; --a[i]; --b[i]; } sort(a + 1, a + n + 1, greater<db>()); sort(b + 1, b + n + 1, greater<db>()); foru(i, 1, n) a[i] += a[i - 1]; foru(i, 1, n) b[i] += b[i - 1]; db l = 0, r = 1e8; foru(_, 0, 500) { db mid = (l + r) / 2; if (check(mid)) l = mid; else r = mid; } cout << setprecision(4) << fixed << l << "\n"; } signed main() { FastIO; #define task "OXBET" if (fopen(task".inp", "r")) { freopen(task".inp", "r", stdin); freopen(task".out", "w", stdout); } #define task "test" if (fopen(task".inp", "r")) { freopen(task".inp", "r", stdin); freopen(task".out", "w", stdout); } #ifdef Sieve Linear_sieve(); #endif int ntest = 1; // cin >> ntest; while (ntest--) { //cout << "Case " << q << ": " << "\n"; solve(); cout << "\n"; } return 0; } /** /\_/\ * (= ._.) * / >TL \>AC **/

Compilation message (stderr)

sure.cpp:110: warning: "task" redefined
  110 |     #define task "test"
      | 
sure.cpp:104: note: this is the location of the previous definition
  104 |     #define task "OXBET"
      | 
sure.cpp: In function 'int main()':
sure.cpp:106:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  106 |   freopen(task".inp", "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
sure.cpp:107:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  107 |   freopen(task".out", "w", stdout);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
sure.cpp:112:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  112 |   freopen(task".inp", "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
sure.cpp:113:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  113 |   freopen(task".out", "w", stdout);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...