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

Автоматичний Складальник

Автоматичний Складальник

Одна високонаукова хімічна установа активно експериментує з Автоматичним Складальником Молекул. Молекули, між якими можливо утворення хімічних зв'язків, перемішують і поміщають у АСМ, де вони утворюють складні молекулярні структури. Проте інколи виникає проблема --- молекули утворюють таку велику групу, що Складальник заїдає. Напишіть програму, яка буде визначати, чи може заданий набір молекул збиратись у структури необмеженого розміра. При цьому: 1) задача обмежена плоскими структурами і 2) кожна молекула має вигляд квадрата, усі молекули мають однаковий розмір. Чотири сторони квадрата позначають поверхні, якими молекули можуть з'єднуватись з сумісними молекулами. У кожному тесті вам буде задано набір описів молекул. Кожен тип молекули описується чотирма парами символів --- мітками зв'язків, які позначають можливість відповідної поверхні молекули з'єднуватись з іншими молекулами. Існує два види міток зв'язків: \begin{itemize} \item Велика латинська літера (\textbf{A..Z}) та один з символів \textbf{+} чи \textbf{-}. Дві поверхні можуть з'єднатися, якщо їх мітки зв'язків позначено однаковими літерами, але різними знаками. Наприклад, \textbf{A+} сумісна з \textbf{A-}, але не сумісна з \textbf{A+} та \textbf{B-}. \item Два нулі \textbf{00}. Мітка зв'язку \textbf{00} означає, що ця поверхня не може утворювати зв'язок (навіть з такою ж поверхнею з міткою \textbf{00}). \end{itemize} Припустимо, що у Складальника є необмежена кількість молекул кожного з описаних виглядів, які можна повертати та перевертати. При утворенні молекулярних структур молекули можуть знаходитись поруч лише якщо вони сумісні. Кожна поверхня молекули при цьому може бути ні з чим не з'єднана. Рисунок показує приклад молекул трьох видів та структури обмеженого розміру, зібраної з них (це не єдина можлива структура для заданих типів молекул). \includegraphics{https://static.e-olymp.com/content/0b/0bd557d3edc18dd7520178f152e0ab8d45982fa6.jpg} \textit{\textbf{Рисунок 1}}: Ілюстрація прикладу 1. \InputFile Вхідні дані складаються з одного тесту. Кожен тест складається з двох рядків. Перший рядок містить число \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{40000}) --- кількість типів молекул. Другий рядок містить \textbf{n} підрядків по \textbf{8} символів кожен --- опис кожного виду молекул, причому поверхні описуються за годинниковою стрілкою. \OutputFile Виведіть слово \textbf{unbounded}, якщо молекули можуть утворити нескінченну структуру і слово \textbf{bounded} у протилежному випадку.
Ліміт часу 3 секунди
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
3
A+00A+A+ 00B+D+A- B-C+00C+
Вихідні дані #1
bounded
Джерело ACM-ICPC World Finals 2013