二分答案
int l, r, ans;
bool check(int);
while (l <= r) {
int mid = l + (r - l) / 2;
if (check(mid)) {
ans = mid;
// l 和 r 取决于方向
l = mid + 1;
} else {
r = mid - 1;
}
}