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

184. Сколько курьеров на линии в нужные минуты

Средняя

Смена курьера Ozon — пара [start, end] в минутах от начала суток: курьер на линии в минуту t, если start ≤ t < end.

Для каждой минуты из moments верните, сколько курьеров на линии. Ответы — в том же порядке, что и moments.

В работе: Диспетчер склада сверяет 3000 смен с 50 000 заказов дня: в каждую минуту заказа нужно знать, сколько курьеров было свободно в принципе.

Пример 1

Ввод
shifts = [[480, 1200], [600, 900], [900, 1320]]
moments = [500, 600, 900, 1250]
Вывод
[1, 2, 2, 1]

В минуту 900 вторая смена уже закончилась, третья началась: на линии двое.

Пример 2

Ввод
shifts = [[0, 10]]
moments = [10]
Вывод
[0]

Конец смены не входит.

Ограничения

  • 0 ≤ n ≤ 10⁵ смен
  • 1 ≤ q ≤ 10⁵ запросов
  • 0 ≤ start < end ≤ 10⁹
  • Лимит — 2 с на тест (2000 мс).
Как вызывается ваш код Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула. print() и console.log() уходят в консоль.
def couriers_online(shifts, moments):
Сортировка событийБинарный поискцельO(n log n)

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