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

Стрічка 3

Стрічка 3

Розміщену вертикально прямокутну паперову стрічку з закріпленим нижнім кінцем стали складати наступним чином: \begin{itemize} \item на першому кроці її зігнули пополам так, що верхня половина лягла на нижню або попереду (\textbf{P}-згиб) або позаду (\textbf{Z}-згиб); \item на натупних \textbf{n-1} кроках виконали аналогічні дії з отриманою на попередньому кроці зігнутою стрічкою, як з єдиним цілим. \end{itemize} Потім стрічку розгорнули, привівши її до початкового стану. На ній залишились згиби - ребра від перегинань, причому деякі з ребер виявились направленими опуклістю до нас (\textbf{K}-ребра), а деякі - від нас (\textbf{O}-ребра). Ребра пронумерували зверху донизу числами від \textbf{1} до \textbf{2^n-1}. \textbf{Потрібно} написати програму, яка за заданими рядком символів з прописних літер "\textbf{O}" та "\textbf{K}", де положенння на \textbf{i}-ому місці символа "\textbf{O}" або "\textbf{K}" визначає тип ребра на розправленій стрічці, знаходить підрядок з прописних "\textbf{P}" та "\textbf{Z}", які визначають послідовність типів згибань, при допомозі яких отримано стрічку з цією послідовністю ребер. \InputFile У першому рядку вхідного файлу записано число \textbf{n} - кількість згибань (\textbf{n} не більше \textbf{20}), у другому рядку - рядок з \textbf{2^n-1} символів "\textbf{O}" або "\textbf{K}", які визначають типи ребер на росправленій стрічці. \OutputFile У єдиний рядок вихідного файлу потрібно вивести рядок з \textbf{n} символів "\textbf{P}" та "\textbf{Z}", які задають послідовність згибань. Якщо такої послідовності згибань не існує, то вивести у файл \textbf{NO}.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
2
OOK
Вихідні дані #1
PZ