Войти Регистрация
Алгоритмы

121. Сколько поставок примут k ворот склада

Сложная

На складе Wildberries k ворот приёмки. Поставка [start, end] занимает одни ворота с минуты start до минуты end (в минуту end ворота уже свободны). Переносить поставки нельзя: принимаем целиком или отказываем.

Верните наибольшее число поставок, которые можно принять так, чтобы в любой момент было занято не больше k ворот.

В работе: Слоты на разгрузку раздают за сутки вперёд: 900 заявок поставщиков на 14 ворот, и каждая лишняя принятая машина — меньше очереди у склада.

Пример 1

Ввод
supplies = [[0, 10], [1, 3], [3, 5], [5, 7]]
k = 1
Вывод
3

Одни ворота: выгоднее отказать длинной [0, 10] и принять три короткие.

Пример 2

Ввод
supplies = [[0, 4], [1, 5], [2, 6]]
k = 2
Вывод
2

Три поставки пересекаются в минуте 2, принять можно две.

Ограничения

  • 0 ≤ длина supplies ≤ 10⁵
  • 0 ≤ start < end ≤ 10⁹
  • 1 ≤ k ≤ 10⁵
  • Лимит — 3 с на тест (3000 мс).
Как вызывается ваш код Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула. print() и console.log() уходят в консоль.
def max_accepted(supplies, k):
Жадный алгоритмКучаИнтервалыцельO(n log n)

Источник: наша задача на данных Wildberries. Условие пересказано своими словами.