#2209. 连续子串

连续子串

题目描述

翁老师有 nn 个字符串 s1,s2,s3,,sns_1,s_2,s_3,\cdots,s_n

翁老师对一个字符串在另一个字符串里作为连续子串出现的情况很感兴趣,例如 ab 就在 abaab 中作为连续子串出现了两次。

他用 f(s,t)f(s,t) 表示 sstt 中以一个连续子串出现的次数,例如 f(ab,abaab)=2f(\texttt{ab},\texttt{abaab})=2

现在翁老师想对 s1,s2,s3,,sns_1,s_2,s_3,\cdots,s_n 中的任意三个串 si,sj,sks_i,s_j,s_k,求出 f(si,sj)×f(sj,sk)×f(sk,si)f(s_i,s_j)\times f(s_j,s_k)\times f(s_k,s_i) 的结果,并将这个结果对所有的 i,j,ki,j,k 求和。其中 i,j,ki,j,k 可以相等,也不要求它们从小到大排列。

请你帮翁老师求出这个总和,并输出答案对 109+710^9+7 取模的结果。

输入格式

第一行一个正整数 nn

接下来 nn 行,第 i+1i+1 行一个字符串表示 sis_i

输出格式

一行一个整数表示答案。

3
aa
aa
ab
9

其余样例

附件

数据规模与约定

s|s| 为字符串 ss 的长度,则对于所有数据,满足 1n,si1061\leq n,\sum |s_i|\leq 10^6,字符串包含所有 ASCII 可见字符(ASCII 3312633\sim 126)。

测试点编号 nn si\sum s_i
131\sim 3 10\leq 10
454\sim 5 1000\leq 1000 1000\leq 1000
676\sim 7 106\leq 10^6
8108\sim 10 106\leq 10^6