Submission #261464

#TimeUsernameProblemLanguageResultExecution timeMemory
261464srvltGap (APIO16_gap)C++14
100 / 100
72 ms1272 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define pb push_back #define all(x) begin(x), end(x) #define SZ(x) (int)(x).size() mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); #include "gap.h" ll findGap(int T, int N) { if (T == 1) { ll l = -1, r = 2e18, mn, mx; ll ans = 0; int cnt = 0; while (cnt < N) { if (l + 1 > r - 1) break; MinMax(l + 1, r - 1, & mn, & mx); if (mn == -1) break; if (l >= 0) { ans = max(ans, mn - l); ans = max(ans, r - mx); } l = mn, r = mx; cnt += 2; } ans = max(ans, r - l); return ans; } ll mn = 0, mx = 0; MinMax(0ll, 1e18, & mn, & mx); ll step = (mx - mn) / (N - 1); ll ans = step, L = 0, R = mn - 1, last = -1; ll l, r; for (int i = 1; i < N; i++) { L = R + 1; R = L + step; MinMax(L, R, & l, & r); if (i > 1 && l != -1 && last != -1) ans = max(ans, l - last); if (l != -1) last = r; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...