https://www.acmicpc.net/problem/2343
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let n = Number(input[0].split(" ")[1]);
let numbers = input[1].split(" ").map((num) => Number(num));
function answer(input) {
let left = 1;
let right = input.reduce((acc, val) => acc + val, 0);
let ans = 0;
while(left <= right) {
let mid = Math.floor((left+right)/2);
let cnt = 1;
let sum = 0;
for(let i=0; i<input.length; i++) {
if (sum + input[i] <= mid) sum += input[i];
else {
cnt++;
if (input[i] > mid) {
left = mid+1;
cnt = Infinity;
break;
} else {
sum = input[i];
}
}
}
if (cnt <= n) {
ans = mid;
right = mid-1;
} else {
left = mid+1;
}
}
return ans;
}
console.log(answer(numbers));