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

Тантрикс

Тантрикс

\includegraphics{https://static.e-olymp.com/content/9f/9fda21e06d43e55f50a3e7b797176226749725f1.jpg} Тантрикс - это игра для двух с \textbf{56} шестиугольными плитками. Каждая плитка содержит три линии разного цвета. Оба игрока держат в руках по пять плиток и совершают хода, кладя их на игровое поле. На картинке справа изображено состояние игры после укладки девяти плиток. Линии бывают четырех цветов: красного, зеленого, желтого и синего. Никакие две плитки не идентичны, никакой поворот плитки не симметричен. Плитка во входных данных задается строкой из шести букв, задающих цвета линий по часовой стрелке. Заглавные буквы '\textbf{R}', '\textbf{G}', '\textbf{Y}' и '\textbf{B}' используются для обозначения красного, зеленого, желтого и синего цвета соответственно. Ходом в игре называется перемещение одной плитки из рук одного игрока на игровое поле согласно следующим правилам: \begin{enumerate} \item Плитку следует класть рядом с одной из уже лежащих. \item Совпадающие линии всех касающихся плиток должны иметь одинаковый цвет. \item Пустое место, окруженное тремя плитками, называется нишей. Если игрок может положить одну из своих плиток в нишу, то он должен это сделать немедленно. Если имеется несколько ниш и существует несколько способов положить туда плитку, то можно выбрать любой из вариантов укладки. \item Не разрешается класть плитку, после которой образуется ниша с тремя линиями одинакового цвета (не существует плитки, которой можно заполнить эту нишу). \item Две прилегающие друг к другу плитки, соседствующие с одной нишей, образуют контролируемый ряд. Запрещается укладывать плитки вдоль контролируемого ряда. \end{enumerate} \includegraphics{https://static.e-olymp.com/content/4e/4e6eb3634d7ea5fc01288ae43cb3c348f217f99d.jpg} Если на игровом поле имеется одна или более ниш, но у игрока нет подходящей плитки, то он может совершить любой другой допустимый ход. Иногда игрок не имеет права положить свою плитку в нишу из-за правила \textbf{4}. На рисунке справа проиллюстрированы описанные правила. На поле имеются три ниши. Выделенную плитку нельзя уложить в левую нижнюю нишу, так как в этом случае образуется новая ниша с тремя линиями красного цвета. Темные серые ячейки лежат на контролируемых рядах, образованных нишами; здесь класть плитки запрещено. Если игрок не в состоянии заполнить любую из трех ниш, он может сделать ход в одну из белых ячеек. Следует найти количество допустимых ходов, которое может совершить игрок, если известны позиции и ориентации уже выложенных на игровое поле плиток, а также плитки, имеющиеся на руках у игрока. Если плитку можно положить в разные места, или ориентировать разными способами, то каждый из таких вариантов укладки считать различным. \InputFile Первая строка содержит количество тестов (не более \textbf{50}). \includegraphics{https://static.e-olymp.com/content/88/8888d69f753a1d7d450ef496149c8c7993856d3f.jpg} Каждый тест начинается со строки, содержащей количество плиток \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{20}) на игровом поле. Следующие \textbf{n} строк содержат координаты и описание этих плиток. Первая буква в описании плитки соответствует линии идущей вверх; цвета остальных линий задаются по ходу часовой стрелки. Следующая строка описывает пять плиток, находящихся в руках у игрока, описание плиток разделено одним пробелом. Соответствие между ячейками и координатами показано на рисунке справа (игровое поле бесконечно и не ограничено только этими координатами). Все входные плитки корректны и различны. На игровом поле задается позиция, которая реально могла возникнуть в игре. Одна из укладеных плиток имеет координаты \textbf{0}, \textbf{0}. \OutputFile Для каждого теста вывести в отдельной строке одно число: количество допустимых ходов.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
2
6
0 0 BRYRBY
1 0 GRGBRB
-1 1 GGYBYB
0 1 YYBBGG
-2 2 YYBGBG
-3 3 BYGYGB
BBRRGG GBYBYG RBRBGG GYBGBY GRBBRG
4
0 0 BYYGBG
-1 1 GRGBBR
1 0 YRBRYB
2 0 YGGRRY
RBBRYY GBGYBY YBBRYR YBYBRR RBBRGG
Вихідні дані #1
46
2