Ctrl K

Самая выгодная подработка для каждого

Средняя
На бирже подработок есть n видов заданий: задание i требует уровня не ниже levels[i] и приносит pay[i]. Есть m исполнителей, навык j-го равен skills[j] — он справится с любым заданием уровня не выше своего навыка. Каждый исполнитель берёт не больше одного задания, а одно и то же задание могут выполнить сколько угодно исполнителей, и каждый получит за него полную оплату. Исполнитель, которому ничего не подходит, зарабатывает 0. Верните наибольший суммарный заработок всех исполнителей.
Пример 1
levels=[3, 1, 5], pay=[30, 12, 25], skills=[2, 4, 6] → 72

Исполнитель с навыком 2 берёт задание уровня 1 (12), с навыком 4 — уровня 3 (30), с навыком 6 тоже выгоднее задание уровня 3 (30), чем уровня 5 (25). Итого 12 + 30 + 30 = 72.

Пример 2
levels=[10, 20], pay=[5, 9], skills=[3, 8] → 0

Ни один исполнитель не дотягивает даже до уровня 10, поэтому заработок 0.

Пример 3
levels=[2], pay=[7], skills=[2, 2, 9] → 21
Ограничения
  • 1 ≤ n, m ≤ 10⁵
  • len(levels) = len(pay) = n, len(skills) = m
  • 1 ≤ levels[i], pay[i], skills[j] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиТройки палочек для треугольника СредняяНаставник вдвое сильнее СредняяКрасота клумб на бюджете СложнаяСтудии для записи СредняяТройки с суммой меньше порога Средняя
загружаем Python…
Вход
levels=[3, 1, 5], pay=[30, 12, 25], skills=[2, 4, 6]
Ожидается
72

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