AT_agc047_b [AGC047B] First Second
Description
[problemUrl]: https://atcoder.jp/contests/agc047/tasks/agc047_b
リマクは、文字列の先頭 $ 2 $ 文字のうち片方を取り除くことを繰り返し行えます。例えば、$ abcxyx\ \rightarrow\ acxyx\ \rightarrow\ cxyx\ \rightarrow\ cyx $ とすることができます。
$ N $ 個の相異なる文字列 $ S_1,\ S_2,\ \ldots,\ S_N $ が与えられます。$ N\ \cdot\ (N-1)\ /\ 2 $ 個のペア $ (S_i,\ S_j) $ のうち何個において、リマクは一方からもう一方を得ることができるでしょうか。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ S_1 $ $ S_2 $ $ \vdots $ $ S_N $
Output Format
リマクが一方の文字列からもう一方を得られるような非順序対 $ (S_i,\ S_j) $ ($ i\ \neq\ j $) の個数を出力せよ。
Explanation/Hint
### 制約
- $ 2\ \leq\ N\ \leq\ 200\,000 $
- $ S_i $ は英小文字 `a` - `z` からなる。
- $ S_i\ \neq\ S_j $
- $ 1\ \leq\ |S_i| $
- $ |S_1|\ +\ |S_2|\ +\ \ldots\ +\ |S_N|\ \leq\ 10^6 $
### Sample Explanation 1
条件を満たすペアは $ (abcxyx,\ cyx) $ のみです。
### Sample Explanation 2
条件を満たすペアは $ (b,\ abc) $, $ (a,\ abc) $, $ (abc,\ c) $, $ (b,\ ab) $, $ (a,\ ab) $ の $ 5 $ 個です。