# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1168865 | Agageldi | Gap (APIO16_gap) | C++20 | 0 ms | 0 KiB |
#include "bits/stdc++.h"
#include "gap.h"
#include "grader.cpp"
using namespace std;
#define ll long long
ll n, mn, answer, mx, ans;
set <ll> v;
void solve(ll l,ll r,ll mid) {
if(l > r) return;
if(l <= mid) {
MinMax(l, mid, &mn, &mx);
if(mn != -1) {
v.insert(mn);
v.insert(mx);
solve(mn + 1, mx - 1, (mx + mn) / 2);
}
}
if(r >= mid + 1) {
MinMax(mid + 1, r, &mn, &mx);
if(mx != -1) {
v.insert(mn);
v.insert(mx);
solve(mn + 1, mx - 1, (mid + mx) / 2);
}
}
}
ll findGap(int T,int N) {
solve(0,1e18, 1e18 / 2);
ans = *v.begin();
for(auto i : v) {
answer = max(answer,i - ans);
ans = i;
}
return answer;
}