n блинов разного размера: stack[0] — верхний блин, размеры — числа от 1 до n. Единственное, что он умеет, — подсунуть лопатку под k-й сверху блин и перевернуть верхние k блинов разом (их порядок меняется на обратный).
Цель — сложить стопку так, чтобы сверху вниз шли 1, 2, …, n. Повар действует строго по правилу: для size от n до 2
- если блин size уже стоит на своём месте (позиция size - 1 сверху), ничего не делает;
- иначе, если блин size не наверху, переворачивает стопку до него включительно, чтобы он оказался сверху;
- затем переворачивает верхние size блинов, и блин size встаёт на место.
Верните список значений k всех переворотов в том порядке, в каком их сделает повар.stack=[2, 3, 1] → [2, 3]
Самый большой блин 3 стоит вторым: переворот 2 даёт [3, 2, 1], переворот 3 — [1, 2, 3]. Дальше блин 2 уже на месте.
stack=[4, 1, 2, 3] → [4, 3]
Блин 4 уже наверху, поэтому сразу переворот 4: [3, 2, 1, 4]. Затем блин 3 наверху — переворот 3, и стопка собрана.
stack=[1, 2, 3] → []
Стопка уже собрана, переворачивать нечего.
stack — перестановка чисел от 1 до len(stack)stack=[2, 3, 1]
[2, 3]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 100 тестов на сервере, включая скрытые.