题目描述
翁老师有 n 个字符串 s1,s2,s3,⋯,sn。
翁老师对一个字符串在另一个字符串里作为连续子串出现的情况很感兴趣,例如 ab
就在 abaab
中作为连续子串出现了两次。
他用 f(s,t) 表示 s 在 t 中以一个连续子串出现的次数,例如 f(ab,abaab)=2。
现在翁老师想对 s1,s2,s3,⋯,sn 中的任意三个串 si,sj,sk,求出 f(si,sj)×f(sj,sk)×f(sk,si) 的结果,并将这个结果对所有的 i,j,k 求和。其中 i,j,k 可以相等,也不要求它们从小到大排列。
请你帮翁老师求出这个总和,并输出答案对 109+7 取模的结果。
输入格式
第一行一个正整数 n。
接下来 n 行,第 i+1 行一个字符串表示 si。
输出格式
一行一个整数表示答案。
3
aa
aa
ab
9
其余样例
附件
数据规模与约定
设 ∣s∣ 为字符串 s 的长度,则对于所有数据,满足 1≤n,∑∣si∣≤106,字符串包含所有 ASCII 可见字符(ASCII 33∼126)。
测试点编号 |
n |
∑si |
1∼3 |
≤10 |
4∼5 |
≤1000 |
≤1000 |
6∼7 |
≤106 |
8∼10 |
≤106 |