#P10066. [CCO 2023] Binaria

[CCO 2023] Binaria

题目描述

你被廉价通信组织(CCO)雇佣来研究一项突破性的通信技术:子消息和(SMS)。这个革命性的想法是这样的。

给定一个长度为 NN 的二进制字符串和一个满足 K≤NK \leq N 的正整数 KK,该字符串的 SMS 由 N−K+1N-K+1 个整数组成。序列中的第一个数是前 KK 位的和,第二个数是第 22 位到第 K+1K+1 位的和,依此类推,最后一个数是第 N−K+1N-K+1 位到第 NN 位的和。

例如,如果 K=4K=4,那么二进制字符串 110010110010 的 SMS 是 2,2,12,2,1。这是因为 1+1+0+0=2,1+0+0+1=21+1+0+0=2,1+0+0+1=2,以及 0+0+1+0=10+0+1+0=1。

由于你是一个新手,你的工作不是从给定的 SMS 中找到原始的二进制字符串,而是找到可能形成这个 SMS 的二进制字符串的数量。

输入格式

第一行包含两个用空格分隔的整数 NN 和 KK。

第二行包含 N−K+1N-K+1 个用空格分隔的整数,保证它至少是一个二进制字符串的 SMS。

输出格式

输出 TT 对 106+310^{6}+3 取模的结果,其中 TT 是等于与给定 SMS 对应的可能的二进制字符串的总数的正整数。

7 4
3 2 2 2
3

提示

长度为 77 的可能的字符串有 10110011011001,11010101101010 和 11100111110011。

对于所有的数据,有 1≤N≤1061\leq N\leq 10^6,1≤K≤N1 \leq K \leq N。

子任务编号 分值 NN 的范围 KK 的范围
1 12 1≤N≤101 \leq N \leq 10 K≤3K \leq 3
2 无
3 16 1≤N≤10001 \leq N \leq 1000 K≤10K \leq 10
4 1≤N≤1061 \leq N \leq 10^{6} K≤20K \leq 20
5 K≤3000K\leq 3000
6 28 无