#agc047b. [agc047_b]First Second

[agc047_b]First Second

题目描述

Limak 可以重复删除字符串的前两个字符,例如 $abcxyx \\rightarrow acxyx \\rightarrow cxyx \\rightarrow cyx$。

给定 NN 个不同的字符串 S1,S2,ldots,SNS_1, S_2, \\ldots, S_N。在 Ncdot(N1)/2N \\cdot (N-1) / 2 个字符串对 (Si,Sj)(S_i, S_j) 中,Limak 能从其中一个字符串获得另一个字符串的有多少对?

约束条件

  • 2leqNleq200,0002 \\leq N \\leq 200\\,000
  • SiS_i 由小写英文字母 a-z 组成。
  • SineqSjS_i \\neq S_j
  • 1leqSi1 \\leq |S_i|
  • S1+S2+ldots+SNleq106|S_1| + |S_2| + \\ldots + |S_N| \\leq 10^6

输入

输入以标准输入给出,格式如下所示:

NN
S1S_1
S2S_2
vdots\\vdots
SNS_N

输出

打印对数,表示满足 Limak 能从其中一个字符串获得另一个字符串的无序字符串对的数量。

示例输入 1

3
abcxyx
cyx
abc

示例输出 1

1

唯一满足条件的字符串对是 (abcxyx,cyx)(abcxyx, cyx)

示例输入 2

6
b
a
abc
c
d
ab

示例输出 2

5

存在五个满足条件的字符串对:(b,abc)(b, abc), (a,abc)(a, abc), (abc,c)(abc, c), (b,ab)(b, ab), (a,ab)(a, ab)