Backstory
Bạn thức dậy chóng mặt trong phòng thí nghiệm hóa học, và bạn nhận ra mình đã bị một nhà hóa học điên già bắt cóc. Vì anh ấy không thể nhìn rõ vì tuổi của anh ấy, anh ấy muốn bạn làm việc cho anh ấy và chỉ sau đó, bạn có thể thoát khỏi phòng thí nghiệm.
Bài tập
Nhiệm vụ của bạn là trả về các công thức cấu trúc của các phân tử có công thức hóa học sẽ được đưa ra làm đầu vào. Lưu ý rằng chỉ các nguyên tử carbon ( C
), oxy ( O
) và hydro ( H
) sẽ được sử dụng làm đầu vào. Không giống như trong các công thức hóa học, a 0
là một bộ định lượng hợp lệ và 1
không thể bỏ qua (ví dụ: C1H4O0
đầu vào hợp lệ, nhưng CH4
không phải).
Để ngăn ngừa sự mơ hồ, chúng tôi giả sử liên kết đôi và ba không xuất hiện trong các phân tử. Tất cả các nguyên tử carbon cần 4 liên kết đơn, tất cả các nguyên tử oxy cần 2 và nguyên tử hydro cần một liên kết. Chúng tôi cũng cho rằng O-O
trái phiếu không tồn tại là tốt. Các phân tử không phải tồn tại cũng không ổn định.
Đầu vào sẽ không bao giờ chứa nhiều hơn 3
các nguyên tử carbon để đảm bảo độ sáng trong màn hình của đầu ra.
Bạn chỉ nên hiển thị các phân tử có nguyên tử cacbon được sắp xếp theo một đường thẳng mà không bị gián đoạn. Ergo, không có C-O-C
trái phiếu.
Bạn phải trả lại tất cả các phân tử có thể không bị loại trừ bởi các quy tắc trước đó. Bạn không cần phải xử lý các đầu vào không hợp lệ.
Ví dụ sau hiển thị tất cả các giải pháp bạn phải xử lý cho phân tử đó.
Xoay 180 độ trong mặt phẳng của trang của một trong các công thức của phân tử được coi là dự phòng và không cần phải hiển thị.
Trong ví dụ dưới đây, tôi sẽ hiển thị tất cả các công thức có thể có cho một phân tử, sau đó chỉ ra những công thức không cần hiển thị.
Thí dụ
Đầu vào: C2H6O2
Đầu tiên, đây là tất cả các công thức có thể có cho đầu vào này (Cảm ơn bạn @Jonathan Allan)
01 H
|
O H
| |
H - O - C - C - H
| |
H H
02 H
|
H O
| |
H - O - C - C - H
| |
H H
03 H H
| |
H - O - C - C - O - H
| |
H H
04 H H
| |
H - O - C - C - H
| |
H O
|
H
05 H H
| |
H - O - C - C - H
| |
O H
|
H
12 H H
| |
O O
| |
H - C - C - H
| |
H H
13 H
|
O H
| |
H - C - C - O - H
| |
H H
14 H
|
O H
| |
H - C - C - H
| |
H O
|
H
15 H
|
O H
| |
H - C - C - H
| |
O H
|
H
23 H
|
H O
| |
H - C - C - O - H
| |
H H
24 H
|
H O
| |
H - C - C - H
| |
H O
|
H
25 H
|
H O
| |
H - C - C - H
| |
O H
|
H
34 H H
| |
H - C - C - O - H
| |
H O
|
H
35 H H
| |
H - C - C - O - H
| |
O H
|
H
45 H H
| |
H - C - C - H
| |
O O
| |
H H
Và đây là các công thức nên có trong đầu ra nếu chúng ta lấy ra các góc quay 180 ° trong mặt phẳng của trang:
01 H
|
O H
| |
H - O - C - C - H
| |
H H
03 H H
| |
H - O - C - C - O - H
| |
H H
12 H H
| |
O O
| |
H - C - C - H
| |
H H
13 H
|
O H
| |
H - C - C - O - H
| |
H H
14 H
|
O H
| |
H - C - C - H
| |
H O
|
H
15 H
|
O H
| |
H - C - C - H
| |
O H
|
H
23 H
|
H O
| |
H - C - C - O - H
| |
H H
25 H
|
H O
| |
H - C - C - H
| |
O H
|
H
35 H H
| |
H - C - C - O - H
| |
O H
|
H
Bạn không cần xuất nhãn của các công thức và bạn có thể xuất một trong hai phép quay khi hai tồn tại. Ví dụ: bạn có thể xuất 02 hoặc 35.
Dưới đây là một số đầu vào hợp lệ để kiểm tra mã của bạn:
C3H8O2 C1H4O0 C2H6O2 C1H4O1 C2H6O2
PC, nhà hóa học đã cho bạn hoàn thành nhiệm vụ của mình khá cũ nên bạn không có nhiều bộ nhớ để lưu mã, do đó đây là môn đánh gôn và số lần thắng byte ngắn nhất!