二分法模板
//ffffffvtttttt 探索满足条件的左边界
int bsearch_1(int l, int r) {
while(l < r) {
int mid = l + r >> 1;
if(check(mid)) r = mid;
else l = mid + 1;
}
return l;
}
//ttttttvffffff 探索满足条件的右边界
int bsearch_2(int l, int r) {
while(l < r) {
int mid = l + r + 1 >> 1;
if(check(mid)) l = mid;
else r = mid - 1;
}
return l;
}