Ctrl K

Самые выгодные выступления

Сложная
Музыканту предлагают выступления: gigs[i] = [start, end, pay] — выступление занимает дни с start по end включительно и приносит pay. Одновременно можно быть только на одном выступлении, и если взялся — работаешь его целиком. Последний день включается, поэтому два выступления, где одно заканчивается в тот же день, когда начинается другое, совместить нельзя. Можно взять не больше limit выступлений (меньше — тоже можно). Верните наибольший суммарный заработок.
Пример 1
gigs=[[1, 3, 5], [4, 6, 3], [2, 5, 7], [7, 7, 2]], limit=2 → 9

Лучше всего выступления [2, 5] и [7, 7]: 7 + 2 = 9. Пара [1, 3] и [4, 6] даёт только 8.

Пример 2
gigs=[[1, 3, 5], [4, 6, 3], [2, 5, 7], [7, 7, 2]], limit=3 → 10

Теперь можно взять три: [1, 3], [4, 6] и [7, 7], всего 5 + 3 + 2 = 10.

Пример 3
gigs=[[1, 2, 3], [2, 4, 4]], limit=2 → 4

Оба выступления занимают день 2, поэтому можно взять только одно — более дорогое.

Ограничения
  • 1 ≤ limit ≤ len(gigs)
  • 1 ≤ limit · len(gigs) ≤ 10⁶
  • 1 ≤ start ≤ end ≤ 10⁹
  • 1 ≤ pay ≤ 10⁶
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКоробка в коробке СложнаяСтрогий подъём из запасных чисел СложнаяСамый выгодный набор подработок СложнаяПодъём по строкам и столбцам СложнаяСлова, спрятанные в тексте Средняя
загружаем Python…
Вход
gigs=[[1, 3, 5], [4, 6, 3], [2, 5, 7], [7, 7, 2]], limit=2
Ожидается
9

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