短調非増加の答えでの値Kの範囲
int test(mid) の関数をあらかじめ作っておく必要がある
bs(k) = 答えがkになる範囲の{L,R}をpairで返す
pair<int,int> bs(int k){
int big,small;
int l = 0;
int r = INF;
while(l+1 < r){ // find big
int mid = (l+r)/2;
int res = test(mid);
if(res >= k){
l = mid;
}
else{
r = mid;
}
}
big = l;
l = 0;
r = INF;
while(l+1 < r){ // find small
int mid = (l+r)/2;
int res = test(mid);
if(res > k){
l = mid;
}
else{
r = mid;
}
}
small = r;
return {small,big};
}