题目描述
有一个长度为 $n$ 的 `01` 串,你可以每次将相邻的 $k$ 个字符合并,得到一个新的字符并获得一定分数。得到的新字符和分数由这 $k$ 个字符确定。你需要求出你能获得的最大分数。
输入
第一行两个整数 $n,k$。
接下来一行长度为 $n$ 的 `01` 串,表示初始串。
接下来 $2^k$ 行,每行一个字符 $c_i$ 和一个整数 $w_i$, $c_i$ 表示长度为 $n$ 的 `01` 串连成二进制后按从小到大顺序得到的第 $i$ 种合并方案得到的新字符,$w_i$ 表示对应的第 $i$ 种方案对应获得的分数。
输出
输出一个整数表示答案。
样例输入输出
输入#1
复制
3 2
101
1 10
1 10
0 20
1 30
提示
【样例解释】
第 $3$ 行到第 $6$ 行表示长度为 $2$ 的 $4$ 种 `01` 串的合并方案。$00\to 1$,得 $10$ 分;$01\to1$,得 $10$ 分;$10\to 0$,得 $20$ 分;$11\to 1$,得 $30$ 分。
【数据范围】
对于 $100\%$ 的数据,满足 $1 \leq n \leq 300$,$0\leq c_i \leq 1$,$2\leq k \leq 8$,$1\leq w_i \leq 10^9$。