Объявления проверяют круглосуточно. Модераторы предложили смены: смена [s, e) закрывает минуты от s включительно до e не включая.
Выберите наименьшее число смен, чтобы каждая минута отрезка [0, day) была закрыта хотя бы одной сменой. Смены могут пересекаться. Если покрыть нельзя — верните −1.
В работе: Составление графика модерации Авито на сутки: каждая лишняя смена — оплаченные часы, а дыра в графике — очередь непроверенных объявлений.
Пример 1
shifts = [[0, 480], [300, 900], [480, 960], [900, 1440], [960, 1440]] day = 1440
3
Три смены, например `[0, 480)`, `[480, 960)`, `[960, 1440)`. Двумя не обойтись: ни одна смена не длиннее 600 минут.
Пример 2
shifts = [[0, 600], [700, 1440]] day = 1440
-1
Минуты 600–699 никто не закрывает.
Ограничения
- 0 ≤ длина
shifts≤ 10⁵ - 0 ≤
s<e≤day - 1 ≤
day≤ 10⁹ - Лимит — 2 с на тест (2000 мс).
print() и console.log() уходят в консоль.
def min_shifts(shifts, day):
Источник: наша задача на данных Авито. Условие пересказано своими словами.
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.