Submission #110892

#TimeUsernameProblemLanguageResultExecution timeMemory
110892luciocfGap (APIO16_gap)C++14
100 / 100
61 ms2040 KiB
#include <bits/stdc++.h> #include "gap.h" using namespace std; const int maxn = 1e5+10; const long long maxv = 1e18+10; typedef long long ll; ll a[maxn]; long long findGap(int T, int N) { if (T == 1) { ll mn, mx; MinMax(0, maxv, &mn, &mx); int l = 1, r = N; a[1] = mn, a[N] = mx; while (true) { if (r-l <= 1) break; MinMax(a[l]+1, a[r]-1, &mn, &mx); a[++l] = mn, a[--r] = mx; } ll ans = 0; for (int i = 1; i < N; i++) ans = max(ans, a[i+1]-a[i]); return ans; } ll mn, mx; MinMax(0, 1e18, &mn, &mx); a[1] = mn, a[N] = mx; ll delta = (mx-mn)/(N-1); ll first = a[1], cur = a[1]+1; ll ans = 0; while (true) { if (cur > a[N]) return ans; MinMax(cur, cur+delta-1, &mn, &mx); if (mn == -1) { cur += delta; continue; } else { ans = max(ans, mn-first); cur += delta; first = mx; delta = max(delta, ans); } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...