/ ALGORITHM

백준 - 나무 자르기(#2805)

백준 2805번

image-20230118235359187

import sys
input = sys.stdin.readline

N,M = map(int,input().split())
namu = list(map(int,input().split()))
height = 0

def binarySearch(array,start,end,target):
    if start>end: 
        return
    global height

    mid = (end+start)//2
    cut = 0
    for i in array:
        if i>mid:
            cut+=i-mid

    if cut<target:
        binarySearch(array,start,mid-1,target)
        
    else:
        height = mid
        binarySearch(array,mid+1,end,target)

binarySearch(namu,0,max(namu),M)
print(cutting)