N,M = map(int,input().split()) arr = [ int(input()) for _ in range(N)] left = max(arr) right = 100000001 answer = float('inf') while left<=right: mid = (left+right)//2 temp = mid cnt = 1 for num in arr: if temp >= num: temp -= num else: temp = mid - num cnt += 1 if cnt >M: left = mid + 1 else: right = mid - 1 answer = min(answer,mid) print(answer)
'알고리즘 > 백준_복기_미완료' 카테고리의 다른 글
[BOJ/백준] 7453 합이 0인 네 정수 (0) | 2021.05.03 |
---|---|
[BOJ/백준] 6987 월드컵 (0) | 2021.05.03 |
[BOJ/백준] 6137 문자열 생성 (0) | 2021.05.03 |
[BOJ/백준] 6118 숨바꼭질 (0) | 2021.05.03 |
[BOJ/백준] 5427 불 (0) | 2021.05.03 |