#include "gap.h"
#define ll long long
#include <bits/stdc++.h>
using namespace std;
int n;
vector<ll> a;
void sol(ll l,ll r){
if(l>r or a.size()==n) return;
ll mx,mn;
MinMax(l,r,&mn,&mx);
if(mx==-1) return;
a.push_back(mn);
if(mx==mn) return;
a.push_back(mx);
l = mn+1; r = mx-1;
if(l>r or a.size()==n) return;
sol(l,r);
}
long long findGap(int subtask_num, int N){
n = N;
if(subtask_num==1){
sol(0,1e18);
sort(a.begin(),a.end());
ll ans = 0;
for(int i=0; i<a.size()-1; i++) ans = max(ans,a[i+1]-a[i]);
return ans;
}
ll l,r,mn,mx, t1=-1,t2=-1;
MinMax(0,1e18,&l,&r);
ll dist = r-l, mn_dist = dist/(n-1);
a.push_back(l);
a.push_back(r);
ll cur = l;
// cerr << dist << ' ' << mn_dist << endl;
while(cur<r){
// cerr << "CURR: " << cur << endl;
MinMax(cur+1,cur+mn_dist+1,&mn,&mx);
if(mx!=-1){
a.push_back(mn);
if(mn!=mx) a.push_back(mx);
}
cur += mn_dist+1;
}
sort(a.begin(),a.end());
ll ans = 0;
for(int i=0; i<a.size()-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... |