eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Ханойские башни

Ханойские башни

Каждый программист знает головоломку "Ханойские башни". Вкратце напомним ее условие. Имеется \textbf{3} стержня: \textbf{A}, \textbf{B}, \textbf{C}. Изначально \textbf{n} дисков разного диаметра расположено на стержне \textbf{A}: наименьший диск расположен сверху, и далее вниз по увеличению диаметра. Второй и третий стержни пустые. Необходимо перенести все диски со стержня \textbf{A} на стержень \textbf{B}, используя стержень \textbf{C} как дополнительный. За один шаг разрешается снять один верхний диск и положить его либо на пустой стержень, либо на стержень, верхний диск которого имеет больший диаметр. Почти все книги по программированию содержат рекурсивное решение задачи. Например, ниже приведено решение на языке Паскаль. Procedure Hanoi (A, B, C: integer; N:integer); Begin If N>0 then Begin Hanoi (A, C, B, N-1); Writeln('Disk ', N, ' from ', A, ' to ', B); Hanoi (C, B, A, N-1) End End; Известно, что приведенное выше решение требует выполнения \textbf{(2^n--1)} шагов. С учетом начального расположения, имеется всего \textbf{2^n} комбинаций расположения \textbf{n} дисков на трех стержнях. Некоторые комбинации никогда не встречаются во время выполнения алгоритма. Например, комбинация "\textbf{CAB}" никогда не встретится в игре с \textbf{n }= \textbf{3 }(наименьший диск расположен на стержне \textbf{C}, средний на стержне \textbf{A}, а наибольший на \textbf{B}). Напишите программу, которая установит, встретится ли в игре заданная комбинация. \InputFile Первая строка содержит количество дисков \textbf{n} (\textbf{1 }≤ n ≤ \textbf{250}). Вторая строка содержит \textbf{n }заглавных букв ("\textbf{A}", "\textbf{B}" или "\textbf{C}") -- расположение \textbf{n }дисков на стержнях. Первая (самая левая) буква задает позицию (имя стержня) наименьшего диска, вторая буква -- позицию второго наименьшего и так далее… \OutputFile Вывести "\textbf{YES}" или "\textbf{NO}" в зависимости от того, достижима ли в игре заданная комбинация.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
3
ACB
Выходные данные #1
YES
Источник ACM Central Region of Russia Quarterfinal Programming Contest, Rybinsk, October 17-18-2012