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

Дужковий лабірінт

Дужковий лабірінт

Є куб розміром \textbf{n} * \textbf{n} * \textbf{n}. Починаючи з комірки (\textbf{1}, \textbf{1}, \textbf{1}), Вам слід прийти до комірки (\textbf{n}, \textbf{n}, \textbf{n}). З кожної комірки можна рухатися до сусідньої у напрямку зростання \textbf{x}, \textbf{y} або \textbf{z} координати. Кожна клітинка куба містить один із символів: '(', ')' або '.'. Шляхом будемо називати послідовність комірок, відвідуваних при русі. Необхідно знайти кількість шляхів з (\textbf{1}, \textbf{1}, \textbf{1}) до (\textbf{n}, \textbf{n}, \textbf{n}), які описують правильну дужкових структуру. Правильною дужковою структурою називається вираз, що породжується граматикою: ::= empty-string | "("")" | "." | Вираз може містити довільну кількість точок, які не враховуються при визначенні його правильності. Наприклад, рядки "(())", "....", ".()." і "().(.)" є правильними дужкових структурами. Символи рядкуа \textbf{maze} відповідають координатам комірок куба наступним чином: (\textbf{1}, \textbf{1}, \textbf{1}), (\textbf{1}, \textbf{1}, \textbf{2}), ..., (\textbf{1}, \textbf{1}, \textbf{n}), (\textbf{1}, \textbf{2}, \textbf{1}), (\textbf{1}, \textbf{2}, \textbf{2}), ..., (\textbf{1}, \textbf{n}, \textbf{n}), (\textbf{2}, \textbf{1}, \textbf{1}), ..., (\textbf{n}, \textbf{n}, \textbf{n}) \InputFile Кожний рядок містить натуральне число \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{13}) та рядок \textbf{maze}, який складається в точності з \textbf{n^3} символів. \OutputFile Для кожного тесту в окремому рядку вивести кількість шляхів з (\textbf{1}, \textbf{1}, \textbf{1}) до (\textbf{n}, \textbf{n}, \textbf{n}), які описують правильну дужкову структуру. Якщо шляхів більше за \textbf{1,000,000,000}, то слід вивести \textbf{-1}.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
2 ()()()()
3 ...........................
2 )()()()(
Вихідні дані #1
2
90
0