操作字符串
题号:NC292100
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小 E 某天在研究字符串,他给出了如下定义:
\hspace{23pt}\bullet当字符串 b 由正整数个字符串 a 首尾相接拼接而成时,我们称字符串 b 被字符串 a 整除。
\hspace{23pt}\bullet当存在字符串 c 能够同时被字符串 a 和字符串 b 整除时,我们称长度最小的字符串 c 为字符串 a 和字符串 b 的最小公倍字符串。
\hspace{15pt}现在小 E 拿到了 n 个字符串,小 E 可以进行如下操作:选定一个字符串的任意一个字符,接着把它修改为任意的字符。
\hspace{15pt}小 E 想要知道最少需要进行多少次操作,使得这 n 个字符串中任意两个字符串间都存在最小公倍字符串。

输入描述:

\hspace{15pt}第一行输入一个正整数 n \left(2 \leq n \leq 10^5 \right) 表示字符串的数量。
\hspace{15pt}此后 n 行,每行输入一个字符串,代表给出的字符串。保证给定的字符串仅由小写英文字母组成。
\hspace{15pt}保证给出的字符串总长度 L 满足 L \le2 \times 10^5

输出描述:

\hspace{15pt}输出一个整数,代表使得这 n 个字符串中任意两个字符串都存在最小公倍字符串需要的最少操作次数。
示例1

输入

复制
2
abac
bc

输出

复制
2
示例2

输入

复制
3
aba
ab
bc

输出

复制
4