题目描述
给定 n 个字符串
s1,s2,…,sn,
保证它们互不相同。请求出满足如下条件的三元组 (i,j,k) 的个数:
- 1≤i,j,k≤n,且 i,j,k 互不相同;
- si 是 sj 的子串,sj 是 sk 的子串;
- 不存在一个 j′∈/{i,j,k},使得 si 是 sj′ 的子串且 sj′ 是 sk 的子串。
输入格式
第一行,一个正整数 n。
接下来 n 行,每行一个字符串 si。
输出格式
一行,一个非负整数,表示答案。
样例 1 输入
4
ababa
baka
abab
ab
样例 1 输出
1
样例 2 输入
5
bc
cbcb
cbca
cbc
c
样例 2 输出
3
数据范围与子任务
记
L=i=1∑n∣si∣.
对于所有数据:
1≤n≤5×105,
1≤L≤106,
所有 si 都是仅由小写字母组成的非空字符串。
| 子任务 |
n≤ |
L≤ |
特殊性质 |
分值 |
| 1 |
500 |
无 |
10 |
| 2 |
5000 |
104 |
25 |
| 3 |
5×105 |
106 |
A |
15 |
| 4 |
105 |
2×105 |
B |
20 |
| 5 |
5×105 |
106 |
无 |
30 |
特殊性质 A:保证所有 si 均仅由 a、b 组成,且每个 si 中恰有一个 b。
特殊性质 B:保证所有 si 均仅由 a、b 组成。