Линия поддержки Альфа‑Банка работает круглосуточно: сутки — это минуты [0, day). Операторы заявили смены shifts[i] = [start, end) — с минуты start до минуты end, не включая её.
Выберите наименьшее число смен, чтобы каждая минута суток была закрыта хотя бы одной сменой. Смены могут перекрываться. Если закрыть сутки нельзя, верните −1.
В работе: Планирование на праздники: из 40 заявленных смен оставить 6–7 и не оголить линию ночью.
Пример 1
Ввод
day = 1440 shifts = [[0, 480], [420, 900], [480, 1000], [960, 1440], [600, 1200]]
Вывод
3
[0, 480), [480, 1000), [960, 1440) — три смены.
Пример 2
Ввод
day = 1440 shifts = [[0, 600], [700, 1440]]
Вывод
-1
С 600 до 700 никого — −1.
Ограничения
- 1 ≤
day≤ 10⁹ - 0 ≤ n ≤ 10⁵
- 0 ≤ start < end ≤ day
- Лимит — 2 с на тест (2000 мс).
Как вызывается ваш код
Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула.
print() и console.log() уходят в консоль.
def min_shifts(day, shifts):
Источник: наша задача на данных Альфа-Банка. Условие пересказано своими словами.
Давали на собеседовании?
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.