Ctrl K

Самый маленький паром под расписание

Средняя
На причале в очередь выстроены ящики, ящик i весит crates[i]. Паром делает один рейс в день и берёт ящики строго в порядке очереди: грузим подряд, пока следующий ящик не перегрузит паром, и отплываем. Переставлять ящики и пропускать их нельзя. Найдите наименьшую грузоподъёмность парома (целое число), при которой все ящики удастся перевезти не более чем за days дней.
Пример 1
crates=[4, 8, 2, 6, 5, 3], days=3 → 12

При вместимости 12: день 1 — 4 + 8, день 2 — 2 + 6, день 3 — 5 + 3. При вместимости 11 уже нужно четыре рейса: 4 | 8 + 2 | 6 + 5 | 3.

Пример 2
crates=[7, 1, 1, 1], days=4 → 7

Самый тяжёлый ящик весит 7, меньше паром быть не может, а с 7 хватает и двух дней.

Пример 3
crates=[3, 3, 3], days=1 → 9

Всё нужно увезти за один рейс: 3 + 3 + 3 = 9.

Ограничения
  • 1 ≤ days ≤ len(crates) ≤ 5 · 10⁴
  • 1 ≤ crates[i] ≤ 500
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПоиск в сдвинутом отсортированном массиве СредняяПервая и последняя копия СредняяПоиск в таблице-цепочке СредняяПоиск в сдвинутом массиве с повторами СредняяМинимум в сдвинутом списке Средняя
загружаем Python…
Вход
crates=[4, 8, 2, 6, 5, 3], days=3
Ожидается
12

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 77 тестов на сервере, включая скрытые.