Submission #94529

#TimeUsernameProblemLanguageResultExecution timeMemory
94529hugo_pmGap (APIO16_gap)C++14
100 / 100
61 ms1916 KiB
#include "gap.h" #include <vector> #include <iostream> using namespace std; typedef long long llg; vector<llg> a; llg s1(int n) { a.resize(n); llg x = 0, y = (llg)(1e18); int d = 0, f = n-1; while (d <= f) { MinMax(x, y, &x, &y); a[d] = x; a[f] = y; ++x; ++d; --y; --f; } llg r = 0; for (int i = 0; i < (n-1); ++i) { r = max(r, a[i+1] - a[i]); } return r; } llg s2(int n) { llg amin, amax; MinMax(0, (llg)(1e18), &amin, &amax); llg totSize = amax-amin+1-2; llg sizeBloc = totSize/(n-1); llg deb = 0, fin = amin; llg ans = 0, der = amin; for (int iBloc = 0; iBloc < (n-1); ++iBloc) { deb = fin+1; fin = deb+sizeBloc-1; if (iBloc <= (totSize) % (n-1)) ++fin; llg xl, xr; MinMax(deb, fin, &xl, &xr); if (xl != -1) { if (der != -1) ans = max(ans, xl - der); der = xr; } } ans = max(ans, amax - der); return ans; } llg findGap(int t, int n) { if (t == 1) return s1(n); else return s2(n); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...