#CF706C. 困难的问题
困难的问题
困难的问题
- 时间限制:1 秒
- 内存限制:256 MiB
题目描述
给定 个仅包含小写英文字母的字符串。你不能交换字符串的位置,但可以翻转任意字符串,即把字符顺序完全反转。翻转第 个字符串需要花费 单位能量。
求使整个字符串序列按字典序非递减排列所需的最小总能量。如果无法做到,输出 。
若字符串 是字符串 的真前缀,则 的字典序更小;否则由第一个不同字符决定大小。相邻字符串完全相同是允许的。
输入格式
第一行包含一个整数 。
第二行包含 个整数 ,其中 表示翻转第 个字符串的代价。
接下来 行,每行包含一个仅由小写英文字母组成的非空字符串。
输出格式
若无法使序列按字典序非递减排列,输出 ;否则输出最小总能量。
样例输入 1
2
1 2
ba
ac
样例输出 1
1
样例输入 2
3
1 3 1
aa
ba
ac
样例输出 2
1
样例输入 3
2
5 5
bbb
aaa
样例输出 3
-1
样例输入 4
2
3 3
aaa
aa
样例输出 4
-1
数据范围
对于全部数据,,,所有字符串的总长度不超过 。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 30 | |
| 2 | 40 | 对所有 均有 |
| 3 | 30 | 无特殊限制 |