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 |