Ctrl K

Самый низкий книжный шкаф

Средняя
Нужно расставить книги по полкам шкафа. Книга books[i] = [толщина, высота]. Ширина каждой полки равна width: суммарная толщина книг на одной полке не может её превышать. Книги ставятся строго в заданном порядке: сначала несколько первых книг на верхнюю полку, затем следующие несколько на полку ниже и так далее. Высота полки равна высоте самой высокой книги на ней, а высота шкафа — сумме высот всех полок. Верните наименьшую возможную высоту шкафа.
Пример 1
books=[[2, 5], [1, 2], [3, 2], [2, 6]], width=4 → 13

Первая полка: книги 0 и 1 (толщина 3, высота 5). Вторая: книга 2 (высота 2). Третья: книга 3 (высота 6). Итого 13. Если поставить книги 1 и 2 вместе, первая полка получит только книгу 0 — сумма та же, а лучше не выйдет.

Пример 2
books=[[1, 4], [1, 4], [1, 4]], width=3 → 4

Все три книги помещаются на одну полку высотой 4.

Пример 3
books=[[3, 1], [1, 9], [3, 1], [1, 1]], width=4 → 10
Ограничения
  • 1 ≤ len(books) ≤ 1000
  • 1 ≤ толщина ≤ width ≤ 1000
  • 1 ≤ высота ≤ 1000
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМеньше всего прыжков до конца СредняяСамая прибыльная серия дней СредняяДобраться до последней клетки СредняяМаршруты тележки по складу СредняяДешёвый маршрут из угла в угол Средняя
загружаем Python…
Вход
books=[[2, 5], [1, 2], [3, 2], [2, 6]], width=4
Ожидается
13

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