Description:

何両編成かの列車を好きな場所で区切って2つに分ける。
その後、列車を再び連結するのだが、2つの内、どちらを先にしても構わず、各列車を引っくり返す、返さないも自由にできる。
列車の各車両にはアルファベットが振られていて、列車のタイプは、先頭から各車両のアルファベットを連結した文字列で表現できる。
同じ文字列で表現された列車は同じタイプで、区別できない。
列車タイプが与えられた時、この組み替えを行う事により、生成可能な列車タイプは何通り有るか?
列車の長さは2以上72以下。

Answer:

実際に全部生成し、数えれば良いだけ。
setに全部入れ、size()を取るのが一番楽だろう。
取りうるタイプの最大値は、区切り方が72, どちらが先かで2, 各々引っくり返すかで2*2, で約600
長さ72の文字列を生成し、比較しながらソートするので、
計算量は、600 * 72 * log(600)。余裕。

Source: