제출 #1271512

#제출 시각아이디문제언어결과실행 시간메모리
1271512cmiucGap (APIO16_gap)C++20
100 / 100
45 ms1952 KiB
#include <iostream> #include "gap.h" using namespace std; long long Arr[1<<17], ans; long long solve1(int n){ Arr[0] = -1; Arr[n + 1] = 1.1e18; for (int i=1;i <= n - i + 1;i++) MinMax(Arr[i - 1] + 1, Arr[n - i + 2] - 1, &Arr[i], &Arr[n - i + 1]); for (int i=2;i<=n;i++) ans = max(ans, Arr[i] - Arr[i-1]); return ans; } long long findGap(int t, int n){ if (t == 1) return solve1(n); long long Mn, Mx, A, B, inf = 1e18, lst; MinMax(0, inf, &Mn, &Mx); lst = Mn; long long Gap = (Mx - Mn + n - 2) / (n - 1); while (1){ MinMax(Mn + 1, Mn + Gap, &A, &B); if (A != -1){ Mn = Mn + Gap; Gap = max(Gap, A - lst); lst = B; } else Mn = Mn + Gap; if (B == Mx) break; } return Gap; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...