AT_abc374_g [ABC374G] Only One Product Name
Description
[problemUrl]: https://atcoder.jp/contests/abc374/tasks/abc374_g
キーエンスの商品名はすべて **英大文字 $ 2 $ 文字** からなります。
すでに $ N $ 個の商品名を使用しており、$ i $ 個目 $ (1\leq\ i\leq\ N) $ の商品名は $ S_i $ です。
一度使用した商品名は再び使うことができないので、過去に使用した商品名の一覧がすぐわかるように NG リストを作ることにしました。
NGリストは次の条件をみたす必要があります。
- $ 1 $ つ以上の文字列からなり、各文字列は英大文字のみからなる。
- すでに使用されている商品名それぞれについて、その商品名を(連続する)部分文字列として含む文字列が $ 1 $ つ以上存在する。
- リスト内のすべての文字列は、すでに使用されている商品名でない長さ $ 2 $ の文字列を(連続する)部分文字列として含まない。
NG リストの文字列の数としてあり得る最小の値を求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ S_1 $ $ S_2 $ $ \vdots $ $ S_N $
Output Format
NG リストの文字列の数としてあり得る最小の値を出力せよ。
Explanation/Hint
### 制約
- $ 1\leq\ N\leq\ 26^2 $
- $ N $ は整数
- $ S_i $ は英大文字のみからなる長さ $ 2 $ の文字列
- $ S_1,S_2,\ldots,S_N $ はすべて異なる。
### Sample Explanation 1
条件をみたす NG リストとしては例えば次の $ 3 $ つの文字列からなるようなものが考えられます。 - `CABCDE` - `DF` - `XX` これは $ 3 $ つの文字列からなり、$ 2 $ つ以下の文字列からなり条件をみたす NG リストは存在しないため、 $ 3 $ を出力します。
### Sample Explanation 2
条件をみたす NG リストとしては例えば次の $ 2 $ つの文字列からなるようなものが考えられます。 - `ACDE` - `BCDF` すでに使用されている商品名は NG リスト内の複数の文字列に登場したり、同一文字列に複数回含まれたりしていても良いことに注意してください。
### Sample Explanation 3
例えば、`ABACBADB` のみからなる NG リストが条件をみたしています。