Informatica Online Judge

  자동합성 [2295 / 08F7]

Time Limit(Test case) : 3000(ms)
Number of users who solved : 2   Total Tried : 0


The Champion of this Problem (C++) : N/A
My Best Submission (C++) : N/A

[ACM ICPC 2013 WF]

Background

화학물질자동제조 회사에서는 자동합성이라고 부르는 과정을 실험중이다. 자동합성 과정에서는, 용액 속에서 분자들이 섞이는 과정에서 서로 자연적 친화력을 가지는 분자들이 서로 붙어가면서 크게 커진다. 하지만 한 가지 문제가 있다.: 분자들이 너무 크게 커지면 기계를 망가트리기 때문이다. 분자들이 주어질 때, 너무 크게 커질지 확인하는 프로그램을 만들어야 한다.

다음과 같이 생각한다.: 1) 분자들이 2차원적으로만 달라붙는다고 생각하고, 2) 정사각형 분자라고 가정한다. 분자의 각 변에는 다른 분자들과 달라붙을 수 있는 특성이 있다.

분자의 종류와 각 분자별 구조가 다음과 같이 표현된다.:
- 영문자(A, ... , Z)와 부호(+, -)로 표현된 것은 서로 달라붙는 특성을 나타낸다. 같은 영문자에 부호가 다른 두 변은 서로 붙는다. 예를 들어, A+ 는 A-와 붙지만 A+나 B-와는 붙지 않는다.
- 00은 모든 변과 달라붙지 않는다.

각 특성을 가지는 분자들이 무한히 공급되고, 사각형 분자들은 회전하거나 뒤집힐 수 있으며, 어떤 변에 다른 분자가 달라붙을 수 있는 경우에는 계속 다른 분자가 달라붙어 점점 커진다.

다음은 3가지 종류의 분자와, 그 분자들로 만들어질 수 있는 구조 중 한 가지를 나타낸다.(3가지 종류의 분자만으로는 무한하게 커지지 않는다.)

Input

첫 번째 줄에는 분자의 가짓수(n)가 입력된다. (1<=n<=40000)

두 번째 줄에는 각 분자의 각 변의 특성이 문자 8개씩으로 나뉘어, 공백을 두고 입력된다. 각 변의 특성은 시계 방향 순서로 입력된다.

Output

주어진 분자들로 무한히 커지는 경우에는 unbounded를 출력하고, 그렇지 않은 경우에는 bounded를 출력한다.

IO Example

입력1
3
A+00A+A+ 00B+D+A- B-C+00C+

출력1
bounded

입력2
1
K+K-Q+Q-

출력1
unbounded

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]