제출 #1288711

#제출 시각아이디문제언어결과실행 시간메모리
1288711minhnguyent546Gap (APIO16_gap)C++20
100 / 100
39 ms3236 KiB
#include "gap.h" #include <vector> long long findGap(int T, int N) { if (T == 1) { std::vector<long long> arr(N); long long l = 0, r = (long long) 1e18; long long min_v, max_v; for (int i = 0; i < (N + 1) / 2; ++i) { MinMax(l, r, &min_v, &max_v); // assert(min_v != -1 && max_v != -1); arr[i] = min_v; arr[N - i - 1] = max_v; l = min_v + 1; r = max_v - 1; } long long ans = -1; for (int i = 0; i < N - 1; ++i) { ans = std::max(ans, arr[i + 1] - arr[i]); } return ans; } else { long long min_v, max_v; MinMax(0, (long long) 1e18, &min_v, &max_v); if (N == 2) { return max_v - min_v; } long long range = max_v - min_v; long long S = (range + N - 2) / (N - 1); long long ans = 0; long long prev = min_v; for (long long i = min_v; i < max_v; i += S + 1) { long long cur_min, cur_max; MinMax(i, i + S, &cur_min, &cur_max); if (cur_min != -1) { ans = std::max(ans, cur_min - prev); prev = cur_max; } } return ans; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...