This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define pb push_back
#define all(x) begin(x), end(x)
#define SZ(x) (int)(x).size()
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
#include "gap.h"
ll findGap(int T, int N) {
if (T == 1) {
ll l = -1, r = 2e18, mn, mx;
ll ans = 0;
int cnt = 0;
while (cnt < N) {
if (l + 1 > r - 1) break;
MinMax(l + 1, r - 1, & mn, & mx);
if (mn == -1) break;
if (l >= 0) {
ans = max(ans, mn - l);
ans = max(ans, r - mx);
}
l = mn, r = mx;
cnt += 2;
}
ans = max(ans, r - l);
return ans;
}
ll mn = 0, mx = 0;
MinMax(0ll, 1e18, & mn, & mx);
ll step = (mx - mn) / (N - 1);
ll ans = step, L = 0, R = mn - 1, last = -1;
ll l, r;
for (int i = 1; i < N; i++) {
L = R + 1;
R = L + step;
MinMax(L, R, & l, & r);
if (i > 1 && l != -1 && last != -1)
ans = max(ans, l - last);
if (l != -1)
last = r;
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |