#include <bits/stdc++.h>
#include "gap.h"
using namespace std;
typedef long long ll;
vector<ll>v;
ll solvet1(int T,int N)
{
ll l=0,r=1e18; int cnt=0;
while(cnt<N && r-l>1)
{
MinMax(l,r,&l,&r);
v.push_back(l);
v.push_back(r);
l++; r--;
cnt+=2;
}
sort(v.begin(),v.end());
ll ans=0;
for(int i=0;i<v.size()-1;i++)
{
ans=max(ans,v[i+1]-v[i]);
}
return ans;
}
ll solvet2(int T,int N)
{
ll l,r;
MinMax(0,1e18,&l,&r);
ll bucket=(r-l)/(N-1)+1;
ll fmin,fmax,ans=0;
ll askl=0;
//cout<<bucket<<endl;
while(fmax!=r)
{
MinMax(askl+1,askl+bucket,&fmin,&fmax);
ans=max(ans,fmin-l);
l=fmax;
askl+=bucket;
}
return ans;
}
long long findGap(int T, int N)
{
if(T==1)
return solvet1(T,N);
else
return solvet2(T,N);
}