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

printЗадачи

1340. Башня

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

На доске имеется три колышка A, B и C. На колышек A нанизаны `N` одинаковых дисков, пронумерованных сверху вниз от 1 до `N`. Колышки B и C пустые. Необходимо перенести все диски на колышек B, используя в качестве вспомогательного колышек C и соблюдая следующие правила:
  • нельзя возвращать диски на колышек A;
  • нельзя снимать диски с колышка B;
  • можно перемещать только по одному диску за ход.
10609.gif
начальное положение
10608.gif
конечное положение
Определить, возможно ли получить заданный конечный порядок размещения дисков на колышке B и минимальное количество ходов для этого.
Во входном файле в первой строке содержится количество дисков `N` (`1\ ≤\ N\ ≤\ 1000`) на колышке A. Следующие `N` строк файла содержат перестановку чисел от 1 до `N` (по одному числу в строке) – требуемое расположение дисков на колышке B в порядке сверху вниз.
В выходной файл вывести минимальное число ходов, если возможно получить указанное конечное расположение дисков, соблюдая правила, или 0 (ноль), в противном случае.

Пример ввода

6
2
3
4
5
6
1

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

10
loading