printРабочее место участника

printЗадачи

1147. Пирамида

Ограничения: время – 1s/2s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

На колышек нанизаны `N` дисков различного размера. Ребенок умеет выполнять только одно действие – снимать `K` (`2\ ≤\ K\ ≤\ N`) верхних дисков, переворачивать их и снова нанизывать на колышек. Сейчас пирамидка собрана неправильно – диски на колышке не расположены в порядке увеличения их размера от вершины к основанию. Напишите программу, подсказывающую ребенку последовательность действий (не обязательно кратчайшую) для упорядочения пирамидки. Количество действий не должно превышать `2*N` (т.о. на установку каждого диска в правильное положение должно тратиться не более двух действий).
7198.jpg
    2 верхних -->     3 верхних -->     2 верхних -->
В первой строке входного файла содержится одно целое число `N` (`1\ ≤\ N\ ≤\ 30`) – количество дисков в пирамидке. Вторая строка содержит `N` целых чисел от 1 до `N`, разделенных пробелами – размеры дисков на пирамидке сверху вниз, каждое число встречается в строке только один раз.
В выходной файл вывести одну строку, содержащую сначала число `M` – количество действий, а затем `M` чисел от 2 до `N`, разделенных пробелами – действия, выполняемые ребенком для упорядочения пирамидки.

Пример ввода 1

3
1 3 2

Пример вывода 1

3 2 3 2

Пример ввода 2

5
4 3 2 5 1

Пример вывода 2

3 3 4 5
loading