自组合 Self-Assembly

题意翻译

你需要写一个程序来判断一个给定的分子集合是否可能组合成一个无限大的结构体。分子集合的大小n≤40000。分子集合中的每个分子都被表示成一个正方形。其中正方形的四条边分别代表分子间相连接的四个表面。 每种分子有四个连接标识来分别表示每条边能与另外分子的哪种边相连。连接标识有两种: 一个大写字母(A,…,Z)加上一个 ‘+’ 号或一个 ‘-’ 号。两条边能并在一起当且仅当两者的字母相等且符号相反。比方说,‘A+’ 与 ‘A-’ 兼容,但与 ‘A+’ 或 ‘B-’ 不兼容两个零 ‘00’。这条边将不和任意一条边兼容(包括‘00’)。 假设每种分子都有无限个,并且每个分子都可以旋转和翻转。当分子将自身组成一个结构体时,相互贴合的边必须能够相互兼容,当然,无论边的连接标识是什么,它都可以不与另外边贴合。

题目描述

[problemUrl]: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=448&page=show_problem&problem=4364 [PDF](https://uva.onlinejudge.org/external/15/p1572.pdf)

输入输出格式

输入格式


输出格式


输入输出样例

暂无测试点