バックストーリー
あなたは化学実験室でめまいを起こし、古い気違いの化学者に誘されたことに気づきます。彼は彼の年齢のために非常によく見えないので、彼はあなたに彼のために働きたいと望み、その時だけ、あなたは実験室から逃げることができる。
仕事
入力として化学式が与えられる分子の構造式を返すのはあなたの仕事です。炭素()、酸素()および水素()原子のみが入力として使用されることに注意してください。化学式とは異なり、a は有効な量指定子であり、a は省略できません(たとえば、有効な入力ですが、そうではありません)。C
O
H
0
1
C1H4O0
CH4
あいまいさを防ぐために、二重結合と三重結合が分子に現れないと仮定します。すべての炭素原子には4つの単結合、すべての酸素原子には2、水素原子には1つの単結合が必要です。また、O-O
債券も存在しないと想定しています。分子は存在する必要も安定している必要もありません。
3
出力の表示の明るさを確保するために、入力に炭素原子以上が含まれることはありません。
中断することなく、炭素原子が直線に配置されている分子のみを表示する必要があります。エルゴ、C-O-C
絆なし。
前のルールで除外されていない可能性のあるすべての分子を返す必要があります。無効な入力を処理する必要はありません。
次の例は、その分子に対して処理する必要があるすべてのソリューションを表示します。
分子の式の1つのページの平面での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
数式のラベルを出力する必要はありません。2つの回転が存在する場合は、いずれかの回転を出力できます。たとえば、02または35を出力できます。
コードをテストするための有効な入力を次に示します。
C3H8O2 C1H4O0 C2H6O2 C1H4O1 C2H6O2
あなたのコードを保存することに多くのメモリを必要はありませんので、化学者は、あなたのタスクを完了するためにあなたを与えたPCはかなり古いです、のでこれは、コードゴルフやバイトの勝利の最短量!