CF965E Short Code

题目描述

Arkady 的代码中包含 $n$ 个变量。每个变量都有一个只由小写英文字母组成的唯一名称。一天,Arkady 决定简化他的代码。 他希望将每个变量名替换为其非空前缀,使得这些新名称仍然唯一(但是,某个变量的新名称可以与另一个变量或自身的旧名称相同)。在所有可能的方案中,他想找到新名称总长度最小的方案。 如果字符串 $a$ 是字符串 $b$ 的前缀,则可以通过从 $b$ 的末尾删除若干(可能为零)字符得到 $a$。 请你求出新变量名总长度的最小可能值。

输入格式

第一行包含一个整数 $n$($1 \le n \le 10^5$),表示变量的数量。 接下来的 $n$ 行,每行包含一个变量名。每个变量名非空,仅包含小写英文字母。所有变量名互不相同。这些字符串的总长度不超过 $10^5$。

输出格式

输出一个整数,表示新变量名总长度的最小可能值。

说明/提示

在第一个样例中,一种最优方案是按给定顺序将变量名缩短为 "cod"、"co"、"c"。 在第二个样例中,可以将最后一个变量名缩短为 "aac",第一个变量名缩短为 "a",其他变量名保持不变。 由 ChatGPT 4.1 翻译