答えで二分探索

boolを返すtestという関数にmidを入れれば使える状態にしておく必要がある

答えの最小化

true true true false false

このtrueとなる時の値を返す


int bs_min(){
    long long l = 0;
    long long r = 1e18;
    while (r - l > 1) {
        long long mid = (l + r) / 2;
        if (test(mid)) {
            r = mid;     
        } else {
            l = mid;     
        }
    }
    return r;
}