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

163. Порядок остановок лифта в офисе

Лёгкая

Лифт стоит на этаже start и едет вверх. calls — этажи, на которых нажали кнопку, в любом порядке, с повторами.

Лифт останавливается на каждом вызванном этаже по пути. Поднявшись до самого верхнего вызова, он разворачивается и едет вниз, собирая остальные. Вызов с этажа start обслуживается сразу. Если сверху вызовов нет, лифт сразу едет вниз.

Верните этажи в порядке остановок, каждый один раз.

В работе: Табло у лифтов в офисе МТС: «Лифт B: 12 → 15 → 7 → 2».

Пример 1

Ввод
start = 5
calls = [7, 2, 9, 7, 4]
Вывод
[7, 9, 4, 2]

Вверх: 7, 9. Вниз: 4, 2.

Пример 2

Ввод
start = 10
calls = [3, 1]
Вывод
[3, 1]

Сверху никого — сразу вниз.

Ограничения

  • 1 ≤ start ≤ 100
  • 0 ≤ длина calls ≤ 10⁵, 1 ≤ этаж ≤ 100
  • Лимит — 2 с на тест (1500 мс).
Как вызывается ваш код Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула. print() и console.log() уходят в консоль.
def elevator_order(start, calls):
СимуляцияСортировкацельO(n log n)

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