뒷이야기
화학 실험실에서 현기증을 일으켜 옛 미친 화학자에게 납치되었다는 것을 알게됩니다. 그는 나이 때문에 잘 보지 못하기 때문에, 당신이 그를 위해 일하기를 원하고 그때만 실험실에서 벗어날 수 있습니다.
직무
화학식 이 입력으로 주어질 분자의 구조식 을 반환하는 것이 당신의 임무 입니다. 탄소 ( ), 산소 ( ) 및 수소 ( ) 원자 만 입력으로 사용됩니다. 화학식과 달리 a 는 유효한 수량 자이며 a 는 생략 할 수 없습니다 (예 : 유효한 입력이지만 그렇지 않습니다).C
O
H
0
1
C1H4O0
CH4
모호성을 방지하기 위해 분자 내에 이중 및 삼중 결합이 나타나지 않는다고 가정합니다. 모든 탄소 원자는 4 개의 단일 결합을 필요로하고, 모든 산소 원자는 2를 필요로하며, 수소 원자는 하나를 필요로합니다. 또한 O-O
채권도 존재하지 않는다고 가정합니다 . 분자가 존재하거나 안정적 일 필요는 없습니다.
입력은 3
출력 디스플레이의 밝기를 보장하기 위해 탄소 원자를 초과하지 않습니다 .
탄소 원자가 방해없이 일직선으로 배열 된 분자 만 표시해야합니다. Ergo, C-O-C
채권 없음 .
이전 규칙에서 제외하지 않은 모든 가능한 분자 를 반환해야합니다 . 유효하지 않은 입력을 처리 할 필요는 없습니다.
다음 예제는 해당 분자에 대해 처리해야하는 모든 솔루션을 표시합니다.
분자식 중 하나의 페이지 평면에서 180도 회전하는 것은 중복으로 간주되며 표시 할 필요가 없습니다.
아래 예에서 분자에 대해 가능한 모든 공식을 표시 한 다음 표시 할 필요가없는 공식을 지적하겠습니다.
예
입력: C2H6O2
먼저,이 입력에 가능한 모든 공식이 있습니다 (@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
다음은 페이지 평면에서 180 ° 회전하는 경우 출력에 포함되어야하는 공식입니다.
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
수식 레이블을 출력 할 필요가 없으며 두 개의 회전이있을 때 회전 중 하나를 출력 할 수 있습니다. 예를 들어 02 또는 35를 출력 할 수 있습니다.
다음은 코드를 테스트하기위한 유효한 입력입니다.
C3H8O2 C1H4O0 C2H6O2 C1H4O1 C2H6O2
화학자가 당신에게 과제를 완수하기 위해 준 PC는 상당히 오래되어서 코드를 저장할 메모리가 많지 않기 때문에 이것은 코드 골프 이며 가장 짧은 바이트 수입니다!