Submission #409236

#TimeUsernameProblemLanguageResultExecution timeMemory
409236tranxuanbachGap (APIO16_gap)C++17
100 / 100
67 ms1184 KiB
#include "gap.h" #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; #define endl '\n' #define fi first #define se second #define For(i, l, r) for (int i = l; i < r; i++) #define ForE(i, l, r) for (int i = l; i <= r; i++) #define FordE(i, l, r) for (int i = l; i >= r; i--) #define Fora(v, a) for (auto v: a) #define bend(a) a.begin(), a.end() #define isz(a) ((signed)a.size()) typedef long long ll; typedef long double ld; typedef pair <int, int> pii; typedef vector <int> vi; typedef vector <pii> vpii; typedef vector <vi> vvi; ll findGap(int t, int n){ if (t == 1){ ll prevmn = -1, prevmx = 1000000000000000001ll, ans = 0; ForE(i, 1, (n + 1) / 2){ ll mn, mx; MinMax(prevmn + 1, prevmx - 1, &mn, &mx); if (prevmn != -1){ ans = max(ans, mn - prevmn); ans = max(ans, prevmx - mx); } prevmn = mn; prevmx = mx; } if (n % 2 == 0){ ans = max(ans, prevmx - prevmn); } return ans; } ll mn, mx, chadmn, chadmx, ans = 0; MinMax(0, 1000000000000000000ll, &mn, &mx); if (n == 2){ return mx - mn; } if (mx - mn == n - 1){ return 1; } ll range = (mx - mn + n - 2) / (n - 1) - 1; ll idx = mn + 1; chadmn = mn; chadmx = mx; ll l = chadmn; while (idx < chadmx){ MinMax(idx, min(idx + range, chadmx - 1), &mn, &mx); if (mn != -1){ ans = max(ans, mn - l); l = mx; } idx += range + 1; } ans = max(ans, chadmx - l); return ans; } /* g++ gap.cpp grader.cpp -o gap -O2 -static -std=c++11 ==================================================+ INPUT: | --------------------------------------------------| 1 4 2 3 6 8 --------------------------------------------------| ==================================================+ OUTPUT: | --------------------------------------------------| --------------------------------------------------| ==================================================+ */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...