CF237E Build String

题目描述

# 题目大意: 你需要使用一些字符串$s_1$,$s_2$,......,$s_n$来构建字符串t,你可以执行$|t|$ ($|t|$是字符串t的长度)次操作: 1. 从字符串$s_1$,$s_2$,......,$s_n$中选择一个非空字符串; 2. 从所选字符串中选择一个字符并将其写在纸上; 3. 从所选字符串中删除所选字符。 注意:执行上述操作后,字符串$s_1$,$s_2$,......,$s_n$中的字符总数减少1。 我们认为构建出了字符串t,当且仅当写在纸上的字符按顺序连起来为t。 但是还有其他限制:对于每个字符串$s_i$,有$a_i$为允许从字符串$s_i$中删除的最大字符数。 而且,从字符串$s_i$中每个删除字符的操作都需要一些代价。对于$s_i$,从中删除1个字符需要花费i的代价。 你的任务是计算根据给定规则构建字符串t所需的最小代价。

输入格式

输出格式

说明/提示

### 第一个样例: 1. 第一个字符串中取字符“b”和“z”; 2. 第二个字符串中取字符“a”,“e”和“b”。 在这种方案下,字符串t的代价是$2*1+3*2=8$。 ### 第二个样例 1. 第一个字符串中取两个字符“a”; 2. 第二个字符串中取字符“c”; 3. 第三个字符串中取两个字符“a”; 4. 第四个字符串中取两个字符“b”。 在这种方案下,字符串t的代价是$2*1+1*2+2*3+2*4=18$。 ### 第三个样例 无解,因为给定字符串中没有字符“y”。 输入中的所有字符串仅由小写英文字母组成。 $1≤|t|,|s_i|≤100$,$1≤n≤100$