QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 2048 MB Total points: 100

#8852. Tự lắp ráp

Statistics

Automatic Chemical Manufacturing đang thử nghiệm một quá trình gọi là tự lắp ráp. Trong quá trình này, các phân tử có ái lực tự nhiên với nhau được trộn trong dung dịch và được để tự phát lắp ráp thành các cấu trúc lớn hơn. Nhưng có một vấn đề: đôi khi các phân tử lắp ráp thành một cấu trúc có kích thước không bị chặn, làm tắc máy móc.

Bạn phải viết chương trình quyết định liệu một tập hợp phân tử cho trước có thể lắp ráp thành cấu trúc có kích thước không bị chặn hay không. Hãy sử dụng hai giả thiết đơn giản hóa: 1) bài toán chỉ giới hạn trong hai chiều, và 2) mỗi phân tử trong tập hợp được biểu diễn bằng một hình vuông. Bốn cạnh của hình vuông biểu diễn các bề mặt mà phân tử có thể kết nối với những phân tử tương thích khác.

Trong mỗi bộ kiểm thử, bạn sẽ được cho một tập hợp mô tả phân tử. Mỗi loại phân tử được mô tả bằng bốn nhãn kết nối gồm hai ký tự, cho biết cách các cạnh của nó có thể kết nối với cạnh của phân tử khác. Có hai loại nhãn kết nối:

  • Một chữ cái in hoa (A, ..., Z) theo sau bởi + hoặc -. Hai cạnh tương thích nếu nhãn của chúng có cùng chữ cái nhưng khác dấu. Ví dụ, A+ tương thích với A- nhưng không tương thích với A+ hay B-.

  • Hai chữ số không 00. Một cạnh có nhãn này không tương thích với bất kỳ cạnh nào (kể cả một cạnh khác cũng có nhãn 00).

Giả sử có nguồn cung vô hạn phân tử của mỗi loại, và các phân tử có thể được xoay và phản chiếu. Khi các phân tử lắp ráp thành cấu trúc lớn hơn, cạnh của hai phân tử chỉ được kề nhau nếu chúng tương thích. Một cạnh được phép không kết nối với gì cả, bất kể nhãn kết nối của nó (không có phân tử kề ở cạnh đó).

Hình A.1 cho một ví dụ gồm ba loại phân tử và một cấu trúc có kích thước bị chặn có thể lắp ráp từ chúng (cũng có thể tạo ra các cấu trúc bị chặn khác từ tập hợp phân tử này).

problem_8852_149f15990c8350b340b82ed53cd8ac58.png

Hình A.1: Minh họa dữ liệu vào của ví dụ 1.

Dữ liệu vào

Dữ liệu vào gồm một bộ kiểm thử duy nhất. Một bộ kiểm thử gồm hai dòng. Dòng đầu chứa số nguyên $n$ ($1 \le n \le 40\,000$), cho biết số loại phân tử. Dòng thứ hai chứa $n$ xâu gồm tám ký tự, mỗi xâu mô tả một loại phân tử, cách nhau bởi một dấu cách. Mỗi xâu gồm bốn nhãn kết nối có hai ký tự, biểu diễn bốn cạnh của phân tử theo chiều kim đồng hồ.

Dữ liệu ra

In ra từ unbounded nếu tập hợp các loại phân tử có thể tạo ra cấu trúc có kích thước không bị chặn. Ngược lại, in ra từ bounded.

Ví dụ

Dữ liệu vào 1

3
A+00A+A+ 00B+D+A- B-C+00C+

Dữ liệu ra 1

bounded

Dữ liệu vào 2

1
K+K-Q+Q-

Dữ liệu ra 2

unbounded

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.