Задачі
Дужковий лабірінт
Дужковий лабірінт
Є куб розміром \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
2 ()()()() 3 ........................... 2 )()()()(
Вихідні дані #1
2 90 0