#include "gap.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
long long findGap(signed T, signed N){
if (T == 2){
int mn = -1;
int mx = -1;
int one = 0;
int two = 1e18;
MinMax(one, two, &mn, &mx);
//now we want to tile [one, two-1]
int l = mx-mn;
int x = (l+N-2)/(N-1);
vector<int> all;
int lft = mn+1;
while (lft < mx){
int rgt = min(lft+x-1, mx-1);
int ff = -1;
int gg = -1;
MinMax(lft, rgt, &ff, &gg);
if (ff != -1){
all.push_back(ff);
all.push_back(gg);
}
lft = rgt+1;
}
all.push_back(mx);
all.push_back(mn);
sort(all.begin(), all.end());
int mxdif = -1;
for (int i = 1; i<all.size(); i++){
mxdif = max(mxdif, all[i]-all[i-1]);
}
return mxdif;
}
else if (T == 1){
int mn = -1;
int mx = -1;
int one = 0;
int two = 1e18;
vector<int> all;
while (one <= two && all.size() < N){
MinMax(one, two, &mn, &mx);
if (mn == -1) break;
all.push_back(mn);
if (mn != mx) all.push_back(mx);
one = mn+1;
two = mx-1;
}
sort(all.begin(), all.end());
int mxdif = -1;
for (int i = 1; i<all.size(); i++){
mxdif = max(mxdif, all[i]-all[i-1]);
}
return mxdif;
}
return 0;
}