Ctrl K

Планы проектов для студии

Сложная
В студии работает staff человек. Есть список проектов, которые студия может взять: проект i требует needs[i] сотрудников и приносит выручку revenue[i]. Каждый сотрудник может участвовать только в одном проекте. Планом назовём любой набор проектов (возможно, пустой), на который хватает людей — суммарно не больше staff — и чья общая выручка не меньше min_revenue. Верните количество различных планов. Ответ может быть очень большим, поэтому верните его по модулю 10⁹ + 7.
Пример 1
staff=4, min_revenue=5, needs=[1, 3, 2], revenue=[2, 4, 3] → 2

Подходят наборы {0, 1} (4 человека, выручка 6) и {0, 2} (3 человека, выручка 5). Набор {1, 2} требует 5 человек, а {0, 1, 2} — 6.

Пример 2
staff=3, min_revenue=0, needs=[2, 2], revenue=[0, 7] → 3

Порог нулевой, поэтому годится и пустой план. Подходят: пустой, {0} и {1}; оба проекта сразу требуют 4 человека.

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

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