CF1107E Vasya and Binary String
题目描述
Vasya 有一个长度为 $n$ 的字符串 $s$,该字符串只包含数字 $0$ 和 $1$。他还有一个长度为 $n$ 的数组 $a$。
Vasya 会不断进行如下操作,直到字符串变为空:选择一段连续且字符相同的子串,将其从字符串中删除,并将剩余部分拼接起来(剩余部分可以为空)。例如,如果他从字符串 111110 中删除子串 111,他将得到字符串 110。每当他删除长度为 $x$ 的子串时,他会获得 $a_x$ 分。
Vasya 想要让自己的总得分最大,请你帮助他实现这个目标。
输入格式
第一行包含一个整数 $n$($1 \le n \le 100$),表示字符串 $s$ 的长度。
第二行包含字符串 $s$,仅由数字 $0$ 和 $1$ 组成。
第三行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 10^9$),其中 $a_i$ 表示删除长度为 $i$ 的子串可以获得的分数。
输出格式
输出一个整数,表示 Vasya 能获得的最大总分。
说明/提示
在第一个样例中,最优的删除顺序为:1101001 $\rightarrow$ 111001 $\rightarrow$ 11101 $\rightarrow$ 1111 $\rightarrow$ $\varnothing$。
在第二个样例中,最优的删除顺序为:10101 $\rightarrow$ 1001 $\rightarrow$ 11 $\rightarrow$ $\varnothing$。
由 ChatGPT 4.1 翻译