Ctrl K

Самый тяжёлый день чтения

Сложная
Книга состоит из глав, pages[i] — число страниц в главе i. Её нужно прочитать ровно за days дней: главы читаются по порядку, каждый день — одна или несколько глав подряд, и ни одна глава не делится между днями. Каждый день читается хотя бы одна глава. Нагрузка дня — сумма страниц прочитанных в этот день глав. Распределите главы так, чтобы самый тяжёлый день был как можно легче, и верните его нагрузку.
Пример 1
pages=[4, 9, 3, 6, 2], days=3 → 11

Лучшее разбиение — [4] [9] [3, 6, 2]: дни по 4, 9 и 11 страниц. Если, например, читать [4, 9] [3, 6] [2], самый тяжёлый день будет 13 страниц.

Пример 2
pages=[5, 1, 1, 1, 5], days=2 → 7

[5, 1, 1] [1, 5] даёт 7 и 6 страниц. Ровно пополам (по 6.5) не поделить — главы не разрываются.

Пример 3
pages=[8, 3, 7], days=1 → 18
Ограничения
  • 1 ≤ len(pages) ≤ 10⁴
  • 0 ≤ pages[i] ≤ 10⁶
  • 1 ≤ days ≤ min(50, len(pages))
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПередать нагрузку влево СредняяОбрезать до горки СложнаяКрасота клумб на бюджете СложнаяОбщая настройка с разной ценой шага СложнаяСвязь в самом глухом селе Сложная
загружаем Python…
Вход
pages=[4, 9, 3, 6, 2], days=3
Ожидается
11

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