Ctrl K

Раздача с самой младшей карты

Сложная
В колоде лежат карты с разными целыми числами, сверху вниз — cards[0], cards[1], … Пока колода не пуста, делается ход: - если верхняя карта — наименьшая из оставшихся в колоде, её убирают; - иначе её перекладывают в самый низ колоды. Сколько ходов понадобится, чтобы колода опустела? Прямое моделирование может занять порядка n² ходов — попробуйте посчитать ответ быстрее.
Пример 1
cards=[5, 2, 7] → 5

5 не наименьшая — под низ: [2, 7, 5]. Убираем 2: [7, 5]. 7 под низ: [5, 7]. Убираем 5, затем 7. Всего 5 ходов.

Пример 2
cards=[3, 1, 2] → 4

Один ход уходит на то, чтобы переложить 3 под низ, дальше карты 1, 2, 3 снимаются по одной: 1 + 3 = 4.

Пример 3
cards=[-4, 0, 9] → 3

Колода уже упорядочена по возрастанию, каждая верхняя карта сразу снимается.

Ограничения
  • 1 ≤ len(cards) ≤ 10⁵
  • -10⁹ ≤ cards[i] ≤ 10⁹
  • все числа в cards различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМеньшие справа СложнаяСуммы отрезков в заданной полосе СложнаяПары с крутым спадом СложнаяЦена расстановки на полке СложнаяТройки, согласные в обоих рейтингах Сложная
загружаем Python…
Вход
cards=[5, 2, 7]
Ожидается
5

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