제출 #838673

#제출 시각아이디문제언어결과실행 시간메모리
838673tch1cherinGap (APIO16_gap)C++17
100 / 100
46 ms3060 KiB
#include "gap.h" #include <bits/stdc++.h> using namespace std; long long findGap(int T, int N) { if (T == 1) { long long Min = -1, Max = 1e18l + 1; vector<long long> front, back; for (int i = 0; i < (N + 1) / 2; i++) { MinMax(Min + 1, Max - 1, &Min, &Max); if (Min != Max) { front.push_back(Min); } back.push_back(Max); } reverse(back.begin(), back.end()); vector<long long> A; for (auto v : front) { A.push_back(v); } for (auto v : back) { A.push_back(v); } long long gap = 0; for (int i = 0; i < N - 1; i++) { gap = max(gap, A[i + 1] - A[i]); } return gap; } else { long long x, y; MinMax(0, 1e18, &x, &y); long long size = (y - x - 1) / (N - 1) + 1; long long left = x + 1; long long gap = 0, max_pos = x; while (left < y) { long long right = min(y - 1, left + size - 1); long long Min, Max; MinMax(left, right, &Min, &Max); if (Min != -1) { gap = max(gap, Min - max_pos); max_pos = Max; } left += size; } return max(gap, y - max_pos); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...