No.2820 Non-Preferred IUPAC Nomenclature
タグ : / 解いたユーザー数 67
作問者 : 🦠みどりむし / テスター : achapi FplusFplusF viral8 👑 AngrySadEight
問題文
注:この問題はフィクションです。現代の化学とは大きな乖離があります。
炭素原子は、$4$ つ以下の、自身以外の炭素原子と (直接) 結合することができます。
$1$ つ以上の炭素原子が互いに結合しあったものを、炭化水素と呼びます。
また、任意の炭化水素は、名前となる文字列と、ちょうど $1$ つの根となる炭素原子をそれぞれ持ちます。
アルカンは、次の規則によって再帰的に構成される炭化水素です:
- いずれも根に (直接) 結合している炭素原子の個数が $4$ つ未満であるような、相異なる $4$ つ以下のアルカンからなる集合 $S$ について、$S$ に属するすべてのアルカンそれぞれの根に、共通の $1$ 炭素原子 $X$ が結合して得られる炭化水素
- $S$ に属するアルカンすべてについて、それぞれの名前の末尾から
ane
を取り除き、先頭に(
、末尾にyl)
を結合して得られる文字列たちからなる多重集合を $P$ とする。 - 名前は、$P$ に属するすべての文字列を自由な順番で結合して得られる文字列 $p$ に対して、$p$ の末尾に
methane
を結合して得られる文字列となる。 - 根は、新たに $X$ となる。
- 特に $S = \emptyset$ のとき、炭素原子 $X$ のみからなる炭化水素であり、名前は
methane
、根は $X$ それ自身である。
- $S$ に属するアルカンすべてについて、それぞれの名前の末尾から
さて、$N$ 個の相異なる炭素原子、炭素原子 $1, 2, \dots, N$ からなるアルカンが $1$ つあります。
このアルカンの名前を求めてください。
構成の手順によっては複数の名前があり得ますが、それらのうちいずれか $1$ つを出力してください。
なお炭素原子が根であるかどうかは目視によって区別できません。
したがってどの炭素原子が根であるかは与えませんので、あなたが自由に一つ選んでよいです。
入力
入力は、以下の形式で標準入力より与えられる:
$N$ $C_{1, 1} \enspace C_{1, 2} \enspace C_{1, 3} \enspace C_{1, 4}$ $C_{2, 1} \enspace C_{2, 2} \enspace C_{2, 3} \enspace C_{2, 4}$ $\vdots$ $C_{N, 1} \enspace C_{N, 2} \enspace C_{N, 3} \enspace C_{N, 4}$
- 多重集合 $L_i \coloneqq \{\!\!\{\, C_{i, 1}, C_{i, 2}, C_{i, 3}, C_{i, 4} \,\}\!\!\} \scriptsize \; (1 \leq i \leq N)$ を定めます。
- $2$ 炭素原子 $i, j \scriptsize \; (i \not= j)$ とが互いに (直接) 結合しているとき、またそのときに限り、$i \in L_j$
かつ $\sout {j \in L_i}$が成り立ちます。 - ここで、以下がいずれも満たされることを保証します:
- $C_{i, j} \in \{\, 1, 2, \dots, N,$
H
$\,\} \scriptsize \; (1 \leq i \leq N \land 1 \leq j \leq 4)$ - $i \not\in L_i \scriptsize \; (1 \leq i \leq N)$
- $\textcolor{#FF0000} {i \in L_j \Leftrightarrow j \in L_i \scriptsize \; (1 \leq i, j \leq N)}$
- $L_i \scriptsize \; (1 \leq i \leq N)$ について、
H
以外の値が重複することはない - これらの炭素原子からなる炭化水素はアルカンである
- $C_{i, j} \in \{\, 1, 2, \dots, N,$
出力
答えを、標準出力へ一行に出力せよ。
制約
- $1 \leq N \leq 2 \times 10^5$
- $N$ は整数
- $N$ 個の炭素原子すべてからなるアルカンがちょうど $1$ つ与えられる
補助ツール
サンプル
入出力例1
入力
2 2 H H H 1 H H H
出力例
(methyl)methane
ethane
ではありません。
入出力例2
入力
3 2 H H H 1 3 H H 2 H H H
出力例
(methyl)(methyl)methane
((methyl)methyl)methane
も正答です。
入出力例3
入力
6 2 3 4 5 1 H H H 1 H H H 1 H H H 1 6 H H 5 H H H
出力例
(((methyl)(methyl)(methyl)methyl)methyl)methane
入出力例4
入力
14 2 H H H 1 3 H H 2 4 5 H 3 H H H 3 H 9 6 H 5 8 7 H H 6 H 11 H 6 H 5 10 12 H H 9 H H 8 14 H H 13 9 H H 12 H H H H 11 H H
出力例
((methyl)methyl)(((((methyl)methyl)(methyl)methyl)((methyl)((methyl)methyl)methyl)methyl)(methyl)methyl)methane
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。