1function maxCutLength(woods, k) {
2 let lo = 1, hi = Math.max(...woods);
3 while (lo <= hi) {
4 const mid = (lo + hi) >> 1;
5 if (canCut(woods, mid, k)) lo = mid + 1;
6 else hi = mid - 1;
7 }
8 return hi;
9}
10function canCut(woods, len, k) {
11 return woods.reduce((s, w) => s + Math.floor(w / len), 0) >= k;
12}