Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

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

printЗадачи

1147. Пирамида

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

На колышек нанизаны N дисков различного размера. Ребенок умеет выполнять только одно действие – снимать K (2 ) верхних дисков, переворачивать их и снова нанизывать на колышек. Сейчас пирамидка собрана неправильно – диски на колышке не расположены в порядке увеличения их размера от вершины к основанию. Напишите программу, подсказывающую ребенку последовательность действий (не обязательно кратчайшую) для упорядочения пирамидки. Количество действий не должно превышать 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