#x1037. CF1483F Exam

CF1483F Exam

Exam

题面翻译

给定互不相同的字符串 s1,s2,,sns_1, s_2, \cdots, s_n,求有多少对 (i,j)(i, j) 满足:

  • iji \neq j
  • sjs_jsis_i 的子串。
  • 不存在 kk (ki,kj)(k \neq i, k \neq j) 满足 sjs_jsks_k 的子串且 sks_ksis_i 的子串。

保证 n,si106n,\sum \lvert s_i \rvert \leq 10^6

我们规定 aabb 的字串仅当通过将 bb 从前和后删除若干个(当然可以是零个或所有)字符可以得到 aa

对于样例一,(1,2),(3,5),(5,4)(1,2),(3,5),(5,4) 满足要求。

对于样例二,(1,2),(1,3),(2,4),(3,4)(1,2),(1,3),(2,4),(3,4) 满足要求。

题目描述

This year a Chunin Selection Exam is held again in Konoha, and taking part in it are n n ninjas named s1 s_1 , s2 s_2 , ..., sn s_n . All names are distinct. One of the exam stages consists of fights between the participants. This year the rules determining the ninjas for each fight are the following: ninjas i i and j j fight against each other if the following conditions are held:

  • ij i \neq j ;
  • sj s_{j} is a substring of si s_{i} ;
  • there is no k k except i i and j j that sj s_{j} is a substring of sk s_{k} , and sk s_{k} is a substring of si s_{i} .

A string a a is a substring of a string b b if a a can be obtained from b b by deletion of several (possibly, zero or all) characters from the beginning and several (possibly, zero or all) characters from the end.

Your task is to find out how many fights are going to take place this year.

输入格式

The first line consists of the only integer n n ( 1n106 1 \leq n \leq 10^{6} ) standing for the number of examinees.

The following n n lines contain their names. No two names coincide, all names are non-empty and consist of lowercase English letters. The total length of all names doesn't exceed 106 10^6 .

输出格式

Print the only integer standing for the number of fights.

样例 #1

样例输入 #1

5
hidan
dan
hanabi
bi
nabi

样例输出 #1

3

样例 #2

样例输入 #2

4
abacaba
abaca
acaba
aca

样例输出 #2

4

提示

In the first example hidan fights against dan, and hanabi fights against nabi, who also fights bi. Ninjas named hanabi and bi don't fight each other since there is the ninja called nabi who breaks the third condition for them.

In the second example the fights are held between abacaba and acaba, abacaba and abaca, acaba and aca, abaca and aca.