제출 #409733

#제출 시각아이디문제언어결과실행 시간메모리
409733naranbatGap (APIO16_gap)C++17
100 / 100
60 ms1844 KiB
#include "gap.h" #include<bits/stdc++.h> const long long INF = 1e18 + 6; using namespace std; long long a[100005]; long long findGap(int T, int N) { if(T == 1){ int l = 0; int r = N - 1; long long mn = 0, mx = INF; long long h,h1; while(l <= r){ MinMax(mn, mx, &h, &h1); a[l] = h; a[r] = h1; l++; r--; mn = h + 1; mx = h1 - 1; } long long ans = 0; for(int i = 1; i < N; i++){ ans = max(ans,a[i] - a[i - 1]); } return ans; } else{ long long mn,mx; MinMax(0, INF, &mn, &mx); a[0] = mn; a[N] = mx; long long x = (mx - mn + N - 2) / (N - 1) + 1; long long ans = x - 1; long long l = mn + 1, last = mn; while(last + x < a[N]){ MinMax(l, l + x - 1, &mn, &mx); if(mn == -1){ l += x; } else{ ans = max(ans, mn - last); last = mx; l = last + 1; } x = max(ans, x + 1); } return ans; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...