Ctrl K

Ящики в тупиковый склад

Средняя
Склад — это коридор из комнат шириной в один ящик, вход только слева. Высота i-й комнаты (считая от входа, с нуля) — rooms[i]. Есть ящики единичной ширины с высотами boxes. Правила: - ящики нельзя ставить друг на друга, в комнате — не больше одного ящика; - порядок, в котором заносить ящики, выбираете вы; - ящик заталкивают слева направо; он не может пройти через комнату ниже себя, и тогда он и все ящики за ним останавливаются перед этой комнатой. Верните, сколько ящиков можно разместить на складе.
Пример 1
boxes=[2, 5, 3, 1], rooms=[6, 4, 4, 2] → 4

Ящик 1 задвигаем до упора в комнату 3, ящик 3 — в комнату 2, ящик 2 — в комнату 1, ящик 5 остаётся у входа в комнате 0. Влезают все четыре.

Пример 2
boxes=[4, 4, 1], rooms=[3, 5, 5] → 1

Входная комната высотой 3 не пропускает ящики высоты 4, так что поместится только ящик 1.

Пример 3
boxes=[2, 2, 2], rooms=[9, 1, 9] → 1

Ящик 2 не проходит через комнату 1, поэтому за ней ничего не поставить. Помещается один ящик — в комнату 0.

Ограничения
  • 1 ≤ len(boxes), len(rooms) ≤ 10⁵
  • 1 ≤ boxes[i], rooms[i] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамое большое число из кусков СредняяСтудии для записи СредняяНизко — высоко — низко СредняяСтрого низко — высоко СредняяОтменить как можно меньше встреч Средняя
загружаем Python…
Вход
boxes=[2, 5, 3, 1], rooms=[6, 4, 4, 2]
Ожидается
4

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