Problem
Evan 的代码包含 n 个变量。每个变量都有一个唯一的名称,仅由英文小写(小)字母组成。有一天,Evan 决定缩短他的代码。
他想用非空前缀替换每个变量的名称,以使新名称保持两两不同(但某些变量的新名称可能与该变量或另一个变量的旧名称相同)。在所有这些可能的替换中,他想找到一个变量名的总长度最小的。
如果可以从字符串 b 的末尾删除一些(可能没有)字符并得到 a,则字符串 a 是字符串 b 的前缀。
找到新名称的最小可能总长度。
输入:
第一行包含一个整数 n (1 ≤ n ≤ 10
5) — Evan 代码中的变量数。
接下来的 n 行包含变量名,每行一个。每个名称都不是空字符串,只包含小写(小)英文字母。所有这些字符串的总长度不超过 10
5。所有变量名都不同。
输出:
打印单个整数——新变量名的最小可能总长度。
示例:
<正文>
输入 |
输出 |
3
代码 |
6 |
5
阿爸
阿布
ab
啊
阿卡达 |
11 |
3
电报
数字
阻力 |
3 |
表>
说明:
在第一个示例中,最好的选择之一是按照输入的顺序将名称缩短为“cod”、“co”、“c”。
在第二个示例中,您可以将姓氏缩短为“aac”名字在“a”之前不改变其他变量名。