#1424. 排序字符

排序字符

当前没有测试数据。

排序字符

题目描述

你需要为nn个字符串排列一个顺序,每个字符串都会产生一定代价。

对于一个字符串ss,其所在位置为xx

  1. 如果存在至少一个其他字符串是ss后缀,且这个字符串的位置在ss后面,ss将产生n×nn \times n的代价。
  2. 如果不存在其他字符串是ss的后缀,则ss产生xx的代价。
  3. 如果所有是ss后缀的字符串的位置都在ss的前面,若这些字符串的位置的最大值为yy,则ss产生xyx-y的代价。

nn个字符串排列一个顺序,使总代价最小。

输入格式

第一行一个整数nn,表示字符串的个数。

接下来nn行,每行有一个字符串。

输出格式

一行一个整数,表示最小代价。

数据范围与提示

对于100%100\%的数据,1n1051 \leq n \leq 10^{5},所有字符的长度总和1len5.1×1051 \leq |len| \leq 5.1 \times 10^{5},数据保证所有字符串由小写字母构成,且保证任意字符串两两互不相同,且有一定梯度。

样例

2
a
ba
2
见word10.in
见word10.ans