Ctrl K

Самый левый свободный табурет

Средняя
У барной стойки бесконечный ряд табуретов с номерами 0, 1, 2, … В бар заходят n гостей с номерами от 0 до n - 1. Каждый вошедший садится на свободный табурет с наименьшим номером. Дан массив visits, где visits[i] = [arrive, leave] — момент прихода и момент ухода гостя i. Уходя, гость освобождает табурет ровно в момент leave; если кто-то приходит в тот же момент, он уже может на этот табурет сесть. Все моменты прихода различны. Верните номер табурета, на который сядет гость с номером guest.
Пример 1
visits=[[3, 8], [1, 4], [6, 9], [4, 7]], guest=3 → 0

В момент 1 гость 1 садится на табурет 0, в момент 3 гость 0 — на табурет 1. В момент 4 гость 1 уходит, и пришедший в тот же момент гость 3 сразу занимает освободившийся табурет 0.

Пример 2
visits=[[2, 5], [1, 10], [3, 6]], guest=2 → 2

Гости 1, 0 и 2 приходят в моменты 1, 2 и 3, и к приходу гостя 2 никто ещё не ушёл: табуреты 0 и 1 заняты, ему достаётся табурет 2.

Ограничения
  • n == len(visits)
  • 2 ≤ n ≤ 5·10⁴
  • len(visits[i]) == 2
  • 1 ≤ arrive < leave ≤ 10⁵
  • Все моменты прихода различны
  • 0 ≤ guest ≤ n - 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамые частые значения СредняяЗадания с перерывом на остывание СредняяСерии подряд идущих чисел СредняяСамые частые запросы СредняяМетки вразнобой Средняя
загружаем Python…
Вход
visits=[[3, 8], [1, 4], [6, 9], [4, 7]], guest=3
Ожидается
0

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