秋祭2023 H問題 - Gomamayo (hard)


Submit solution

Points: 600
Time limit: 2.0s
Memory limit: 1000M

Author:
Problem type
Allowed languages
C++, Python

この問題は「2023秋祭」のアーカイブです。2023 Akisai-F

H問題 - Gomamayo (hard)

実行時間制限: 2 sec / メモリ制限: 1024 MB

問題文

\(N\)個の文字列\(S_i\)が与えられます。あなたは\(S_i\)のうちいくつかを次の条件を満たすように連結せさ、新しい文字列\(T\)を作りたいです。

条件
  • 文字列\(A\)と文字列\(B\)は、\(A\)の末尾と\(B\)の先頭の文字が完全に一致するならば文字列\(A\)と文字列\(B\)を使用して\(AB\)の順で連結することができる。 すなわち、\(AB\)は\(A\)と\(B\)の境界を等しくする狭義ゴママヨ文字列(C問題参照)となる。
  • \(S_i\)は1回のみ使用することができる。

考えられる新しい文字列\(T\)のうち最長となるものの長さを求めてください。

制約

  • \(2 \leq N \leq 16\)
  • \(1 \leq |S| \leq 100\)
  • \(N\)は整数として与えられる。
  • \(S_i\)は大小英文字として与えられる。 ## 入力
N
S_1 S_2 ... S_N

出力

考えられる最長の新しい文字列\(T\)の長さを1行で出力せよ。

入力例1
6
abc bba cbb ace bad cge
出力例1
12
入力例2
6
a a a b b b
出力例2
3

1文字の先頭と末尾は等しいので、aaaやbbbと連結することができます。それぞれの文字列は1回以下使用できることに注意してください。 aaaと連結してもbbbと連結しても長さは3で、最長です。

入力例3
1
a
出力例3
1

Comments

There are no comments at the moment.