第11076题 单选
现有n根长度为a[i]的木材,要切成不少于m段等长木段求最大可能长度,对应二分法实现代码的两处横线空缺应分别填写什么?

给定n根木头,第i根长度为a[i],对应Python实现代码如下:

def check(a, m, x):
    cnt = 0
    for length in a:
        if x == 0:
            return True
        cnt += length // x
        if cnt >= m:
            return True
    return cnt >= m

def main():
    import sys
    input = sys.stdin.read().split()
    idx = 0
    n = int(input[idx])
    idx += 1
    m = int(input[idx])
    idx += 1

    a = []
    mx = 0
    for _ in range(n):
        num = int(input[idx])
        idx += 1
        a.append(num)
        mx = max(mx, num)

    l = 1
    r = mx
    ans = 0

    while l <= r:
        mid = l + (r - l) // 2
        if check(a, m, mid):
            ans = mid
            _______________
        else:
            _______________

    print(ans)

if __name__ == "__main__":
    main()
A

l = mid + 1 和 r = mid - 1

B

r = mid - 1 和 l = mid + 1

C

l = mid + 1 和 r = mid

D

l = mid - 1 和 r = mid + 1