Ctrl K

Грузчики и энергетики

Сложная
На складе есть грузы весом loads[i] и грузчики с силой lifters[j]. Грузчик может перенести груз, если его сила не меньше веса груза, и каждый грузчик берёт не больше одного груза. Есть ещё drinks энергетиков. Энергетик увеличивает силу выпившего на boost; одному грузчику можно дать не больше одного энергетика. Кому их раздать — решаете вы. Верните наибольшее число грузов, которые удастся перенести.
Пример 1
loads=[6, 2, 9], lifters=[5, 9, 1], drinks=1, boost=2 → 2

Например, 9 несёт грузчик с силой 9, а грузчик с силой 5 после энергетика несёт 6. Все три не выйдет: энергетик один, а нужен он и грузчику с силой 5 (для 6), и грузчику с силой 1 (для 2).

Пример 2
loads=[4, 4], lifters=[1, 2, 3], drinks=3, boost=2 → 2

С напитком у грузчиков силы 3, 4 и 5 — груз 4 по силам двоим из них.

Пример 3
loads=[10], lifters=[3, 4], drinks=2, boost=5 → 0

Даже с напитком сильнейший поднимает только 9 — меньше 10.

Ограничения
  • 1 ≤ len(loads), len(lifters) ≤ 10⁵
  • 0 ≤ drinks ≤ len(lifters)
  • 0 ≤ loads[i], lifters[j], boost ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКороткий отрезок с нужной суммой СложнаяВсе фонари горят как можно дольше СложнаяКрасота клумб на бюджете СложнаяСамая длинная серия станков в бюджет СложнаяОбщая настройка с разной ценой шага Сложная
загружаем Python…
Вход
loads=[6, 2, 9], lifters=[5, 9, 1], drinks=1, boost=2
Ожидается
2

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