단조성 확인
파라메트릭 서치는 x가 가능하면 그보다 큰 값도 가능하다는 식의 방향이 있어야 한다.
세 기법은 모두 포인터나 경계를 움직이지만 전제 조건이 다르다. 정렬, 단조성, 윈도우 불변식이 맞아야 올바르게 줄일 수 있다.
파라메트릭 서치는 x가 가능하면 그보다 큰 값도 가능하다는 식의 방향이 있어야 한다.
슬라이딩 윈도우는 오른쪽을 늘린 뒤 조건이 깨지면 왼쪽을 줄여 다시 맞춘다.
[lo, hi)인지 [lo, hi]인지 정하지 않으면 무한 루프와 off-by-one이 생긴다.
while (lo < hi) {
int mid = lo + (hi - lo) / 2;
if (can(mid)) hi = mid;
else lo = mid + 1;
}