编程题
### 问题描述 小蓝进入了一个神秘的魔法世界,这个世界中充满了魔法力量。在这个世界里,存在着一种特殊的字符串,称为魔法字符串。每个魔法字符串由小写字母组成,每个字母都具有独特的魔法力量。魔法字符串的价值取决于其中每个字母的初始价值。 小蓝得到了一个长度为 $n$ 的魔法字符串 $s$,其中的每个小写字母具有初始价值 $w_i$。初始时,字符串中每个字符的价值就是对应字母的初始价值。小蓝可以花费 $m$ 的代价进行操作。每次操作可以选择两个相邻的字符 $x$ 和 $y$,并将其中一个字符的价值更改为它们两个字符价值的最大公约数。小蓝的目标是将整个字符串中所有字符的价值变成 $1$,并希望以最小代价实现。如果无法将字符串中所有字符的价值全部变为 $1$,则输出 `-1`。 ### 输入格式 第一行输入两个整数 $n$ 和 $m$($1 \leq n, m \leq 1000$),表示魔法字符串的长度和操作的代价。 第二行输入 $26$ 个整数 $w_i$($1 \le w_i\le 10^9$),表示字母 `a` 到 `z` 每个小写字母的初始价值。 第三行输入一个长度为 $n$ 的由小写字母组成的字符串 $s$,表示给定的魔法字符串。 ### 输出格式 输出一个整数,表示将整个字符串中所有字符的价值变为 $1$ 的最小代价。如果无法实现,则输出 `-1`。 ### 样例输入 ``` 6 2 2 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 abacba ``` ### 样例输出 ``` 12 ```
查看答案
赣ICP备20007335号-2