#P15053. [2026省选联测]追忆

[2026省选联测]追忆

题目描述

我常常追忆一个长为 nn 的序列,它的每个位置是 *\texttt * 或者 +\texttt +*\texttt * 表示让变量加上自身,+\texttt + 表示让变量 +1+1

现在你要选出它的一个子序列(子序列即原序列中取出一些位置,顺序不变地拼成的序列),使得一个初始为 00 的变量在对子序列中的字符依次执行对应操作后2k2^k 取模所得结果尽可能大。求出最大可能的结果。

输入格式

第一行两个正整数 n,kn,k,表示序列长度以及模数为 2k2^k

第二行一个长为 nn 的字符串表示序列。

输出格式

一行一个正整数,为答案的二进制表示,不含前导零,但答案为 00 时要输出 00(而不是空串)。

输入输出样例

样例输入 #1

9 5
++*++***+

样例输出 #1

11001

样例解释 #1

有多种选法可以达到最大,如 ++*++**+\texttt {++*++**+}+++***+\texttt {+++***+}

大样例

见下发文件。

数据范围与约定

对于所有数据,1n,k1061\le n,k\le 10^6

子任务编号 特殊性质 分值
11 n500,k10n\le 500,k\le 10 1515
22 n500,k500n\le 500,k\le 500
33 n105,k5000n\le 10^5,k\le 5000 2020
44 不存在两个相邻的 +\texttt +
55 - 3030