Submission #1142427

#TimeUsernameProblemLanguageResultExecution timeMemory
1142427anmattroiGap (APIO16_gap)C++17
100 / 100
39 ms1864 KiB
#include <bits/stdc++.h> #include "gap.h" #define maxn 100005 #define int64_t long long using namespace std; int n; constexpr int64_t INF = 1000000000000000000LL; int64_t a[maxn]; int64_t sub1() { int64_t mn, mx; int64_t L = 0, R = INF; int l = 1, r = n; while (l <= r) { MinMax(L, R, &mn, &mx); a[l] = mn; a[r] = mx; ++l; --r; L = mn+1; R = mx-1; } int64_t ans = 0; for (int i = 1; i < n; i++) ans = max(ans, a[i+1]-a[i]); return ans; } int64_t sub2() { int64_t mn, mx; int64_t L = 0, R = INF; MinMax(L, R, &mn, &mx); int64_t LowerBound = (mx-mn-1)/(n-1)+1; int64_t ans = 0; int64_t MIN = mn, MAX = mx; int64_t Last = MIN; for (int64_t s = MIN+1, e = MIN+LowerBound, i = 0; i < n; s += LowerBound, e += LowerBound, i++) { if (e >= MAX) e = MAX; if (s > e) break; MinMax(s, e, &mn, &mx); if (mn != -1) ans = max(ans, mn-Last), Last = mx; } return ans; } long long findGap(int T, int N) { n = N; if (T == 1) return sub1(); return sub2(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...