Submission #668351

#TimeUsernameProblemLanguageResultExecution timeMemory
668351danikoynovGap (APIO16_gap)C++14
100 / 100
67 ms5788 KiB
#include "gap.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; long long findGap(int T, int N) { if (T == 1) { ll lf = 0, rf = 1e18, mn, mx; set < ll > st; int nn = 0; while(nn < N) { MinMax(lf, rf, &mn, &mx); st.insert(mn); st.insert(mx); lf = mn + 1; rf = mx - 1; nn += 2; } ll ans = 0; ll last = -1; for (auto it : st) { if (last != -1) ans = max(ans, it - last); last = it; } return ans; } else { ll lf = 0, rf = 1e18, mn, mx, dn, dx; MinMax(lf, rf, &mn, &mx); if (N == 2) { return mx - mn; } ll len = (mx - mn - 1) / (N - 1); if ((mx - mn - 1) % (N - 1) != 0) len ++; ll last = mn, ans = 0; for (int i = 0; i < N; i ++) { ll s = i * len + mn + 1, e = (i + 1) * len + mn; MinMax(s, e, &dn, &dx); if (dn != -1) { ans = max(ans, dn - last); last = dx; } } ans = max(ans, mx - last); return ans;; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...