Ограничения: время – 200ms/500ms, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод 
Послать решение Blockly Посылки Темы Где Обсудить (0)
На доске имеется три колышка A, B и C. На колышек A нанизаны N одинаковых дисков, пронумерованных сверху вниз от 1 до N.
Колышки B и C пустые. Необходимо перенести все диски на колышек B,
используя в качестве вспомогательного колышек C и соблюдая следующие правила:
- нельзя возвращать диски на колышек A;
- нельзя снимать диски с колышка B;
- можно перемещать только по одному диску за ход.
 начальное положение |  конечное положение |
Определить, возможно ли получить заданный конечный порядок размещения дисков на колышке B и минимальное количество ходов для этого.
Во входном файле в первой строке содержится количество дисков N (1 ) на колышке A. Следующие N строк файла содержат перестановку чисел от 1 до N (по одному числу в строке) – требуемое расположение дисков на колышке B в порядке сверху вниз.
В выходной файл вывести минимальное число ходов, если возможно получить указанное конечное расположение дисков, соблюдая правила, или 0 (ноль), в противном случае.
Пример ввода
6
2
3
4
5
6
1