#include "bits/stdc++.h"
#include "gap.h"
using namespace std;
#define ln "\n"
#define dbg(x) cout << #x << " = " << x << ln
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define inf 2e18
#define fast_cin() \
ios_base::sync_with_stdio(false); \
cin.tie(NULL)
#define out(file) freopen(file, "w", stdout)
#define in(file) freopen(file, "r", stdin)
#define all(x) (x).begin(), (x).end()
#define sz(x) ((int)(x).size())
#define ll long long
int MOD = 1e9 + 7;
ll findGap(int T, int N) {
if(T == 1) {
ll mn, mx;
ll lb = 0, rb = 1e18;
int l = 0, r = N - 1;
vector<ll> a(N, 0);
while(l <= r) {
MinMax(lb, rb, &mn, &mx);
a[l] = mn, a[r] = mx;
lb = mn + 1, rb = mx - 1;
l++,
r--;
}
ll ans = 0;
for(int i = 1; i < N; i++) ans = max(ans, a[i] - a[i - 1]);
return ans;
} else {
ll ans = 0;
ll mx, mn, s = 0, t = 1e18;
MinMax(s, t, &mn, &mx);
if(N == 2) return mx - mn;
ll gap = (mx - mn + 1) / N;
s = mn + 1, t = mx - 1;
ll lst = mn;
while(s + gap + 1 <= t) {
MinMax(s, s + gap, &mn, &mx);
if(mn != -1) ans = max(ans, mn - lst), lst = mx;
s += gap + 1;
}
MinMax(s, t, &mn, &mx);
if(mn != -1) ans = max(ans, mn - lst), lst - mx;
ans = max(ans, t + 1 - lst);
return ans;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |