Submission #557940

#TimeUsernameProblemLanguageResultExecution timeMemory
557940Ai7081Gap (APIO16_gap)C++17
100 / 100
64 ms7432 KiB
#include "gap.h" #include <bits/stdc++.h> using namespace std; #define ll long long const ll inf = 1e18; vector<ll> v; long long findGap(int T, int N) { ll ans = 0; if (T==1) { v.assign(N, -1); ll *mi = new ll, *ma = new ll; MinMax((ll)1, inf, mi, ma); v[0] = *mi, v[N-1] = *ma; for (int i=1; i<=(N-1)/2; i++) { MinMax(*mi+1, *ma-1, mi, ma); v[i] = *mi, v[N-1-i] = *ma; } for (int i=0; i<N-1; i++) ans = max(ans, v[i+1] - v[i]); } else if (T==2) { ll *allmin = new ll, *allmax = new ll; MinMax((ll)1, inf, allmin, allmax); ll gap = (*allmax - *allmin + N-2) / (N-1); ll now = *allmin+1, last = *allmin; while (now < *allmax) { ll *mi = new ll, *ma = new ll; MinMax(now, now+gap, mi, ma); if (*mi != -1) ans = max(ans, *mi - last); if (*ma != -1) last = *ma; now = now+gap+1; } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...