题库练习 前二删一
← 上一题 下一题 →

A7392 | 前二删一

时间限制3s
内存限制1024MB
通过 / 提交0/0

题目描述

Limak 有一个字符串,他可以反复执行下面的操作:

从当前字符串的前两个字符中,选择一个字符删除。

例如:

$$ abcxyx \rightarrow acxyx \rightarrow cxyx \rightarrow cyx $$

现在给定 $N$ 个互不相同的字符串 $S_1,S_2,\dots,S_N$。

对于一对不同的字符串 $(S_i,S_j)$,如果 Limak 可以通过若干次上述操作,把其中一个字符串变成另一个字符串,那么这一对字符串就是一对合法字符串。

请你求出合法字符串对的数量。

注意:

字符串对是无序的,也就是说 $(S_i,S_j)$ 和 $(S_j,S_i)$ 只算一对。
由于每次操作都会删除一个字符,所以只有较长的字符串可能变成较短的字符串。

输入格式

第一行输入一个整数 $N$,表示字符串的数量。

接下来 $N$ 行,每行输入一个字符串 $S_i$。

输出格式

输出一个整数,表示合法字符串对的数量。

输入输出样例

输入 #1
3 
abcxyx 
cyx 
abc
输出 #1
1
输入 #2
6 
b 
a 
abc 
c 
d 
ab
输出 #2
5
C++ 编辑器
输入
输出