#include <bits/stdc++.h>
#include "gap.h"
using namespace std;
using ll = long long;
long long findGap(int T, int N)
{
if(T == 1) {
vector<ll> a(N);
ll l = 0, r = 1e18;
int i = 0, j = N - 1;
while(i <= j) {
ll mn, mx;
MinMax(l, r, &mn, &mx);
a[i] = mn;
a[j] = mx;
l = mn + 1;
r = mx - 1;
++i;
--j;
}
ll ans = 0;
for(int i=0;i<N-1;++i)
ans = max(ans, a[i + 1] - a[i]);
return ans;
} else {
ll mn, mx, mx2;
MinMax(0, 1e18, &mn, &mx);
mx2 = mx;
ll gap = (mx - mn + 1) / (1LL * N);
ll cur = mn + 1;
vector<ll> a;
a.push_back(mn);
if(mn != mx) {
a.push_back(mx);
}
while(a.size() != N) {
ll cur2 = cur, cur3 = cur + gap;
while(cur <= cur2) {
MinMax(cur2, cur3, &mn, &mx);
if(mn == -1) {
break;
} else {
if(mx != mx2) {
a.push_back(mn);
}
if(mn != mx && mx != mx2) {
a.push_back(mx);
}
}
mn += 1;
mx -= 1;
}
cur += gap;
}
sort(a.begin(), a.end());
ll ans = 0;
for(int i=0;i<N-1;++i)
ans = max(ans, a[i + 1] - a[i]);
return ans;
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |