城市化发展委员会
题目背景
MLE 大帝曾说过:
![](https://cdn.luogu.com.cn/upload/image_hosting/kce8kpx3.png)
所以为了应对这种情况我们设立了**城市化发展委员会**。
题目描述
在高中的校园里我们常常能看到随机刷新的小情侣,对于他们之间的情感,对于 OIer 来说还是太过于高深了,即使是退役的 AzureHair 也无法理解这一行为,但是作为自命的城市化发展委员会的常委,他有自己的一套理解方法。
他认为,女生往往对男生十分的严格。一天开始时男生在女生的心里的积分会加 $1$,而如果当天惹女生生气了 $x$ 次,积分就会在此基础上减 $x$。积分会不断累计,一旦小于等于 $0$ 就可能导致去城市化的严重后果。
现在 **威廉** 在和 **珂朵莉** 进行一种城市化行为,**威廉** 在~~纳西妲~~的帮助之下获得了超能力:一是他可以预知到接下来一个周期的积分变化情况,初始的周期长度为 $n$;二是他可以选择从任意一天开始,开始前的日子将会被拼接到最后一天之后。
他从每一天开始都尝试过一次后,发现了 $a$ 个能使得他不被去城市化的起始日期。随后他会将这若干种情况下的序列按照起始日期的先后拼在一起,变成一个长度为原先 $a$ 倍的周期。他如此重复操作 $k$ 次,由于一天天地试太累了,**威廉** 只想知道最后一次操作后有多少个起始日期能让自己不被去城市化,对 $998244353$ 取模。
---
形式化地说,我们称满足前缀和始终大于 $0$ 的数列为 “安全的”。
对于一个长为 $n$ 的数列 $A_i$,根据以下算法构造出数列 $A_{i+1}$,初始时 $A_{i+1}$ 为空。
- 重复执行 $n$ 次:
1. 若 $A_i$ 是安全的,将其整个接到 $A_{i+1}$ 末尾。
2. 将 $A_i$ 循环左移一位,即令 $A_{i_j} ← A_{i_{j+1 \bmod n}}$。
现在给定 $A_0$,**满足其各项均不大于 1**。
从 $A_0$ 开始按上述规则生成数列 $A_1$ 到 $A_{k+1}$,请求出 $A_{k+1}$ 与 $A_k$ 的长度比,这个值只要存在就一定是整数,请输出它对 $998244353$ 取模的值。特别地,如果 $A_k$ 为空,请输出 ```0```。
输入输出格式
输入格式
普通题意:
共两行,第一行两个整数 $n$ 和 $k$,表示初始的周期长度和操作次数。
第二行 $n$ 个小于等于 1 的整数,表示每天的积分变化。
形式化题意:
共两行,第一行两个整数为 $A_0$ 的长度 $n$ 以及 $k$。
第二行是 $A_0$。
输出格式
一行一个整数,表示答案对 $998244353$ 取模的结果。
输入输出样例
输入样例 #1
8 0
1 1 -2 1 1 -1 0 1
输出样例 #1
2
输入样例 #2
6 0
1 1 -4 -5 1 -4
输出样例 #2
0
说明
**【样例解释1】**
对于样例 #1 的数据,初始周期为 ```1 1 -2 1 1 -1 0 1```。从每一天开始得到的序列分别是:
```text
1 1 -2 1 1 -1 0 1
1 -2 1 1 -1 0 1 1
-2 1 1 -1 0 1 1 1
1 1 -1 0 1 1 1 -2
1 -1 0 1 1 1 -2 1
-1 0 1 1 1 -2 1 1
0 1 1 1 -2 1 1 -1
1 1 1 -2 1 1 -1 0
```
只有从第 4 天和第 8 天开始的序列是满足条件的。
形式化题意:
$A_1=\{1,1,-1,0,1,1,1,-2,1,1,1,-2,1,1,-1,0\}$,长度为 16,因此应输出 2。
**【样例解释2】**
可以证明不存在合法的方案。
喂!样例全都 $k=0$ 是不是太过分了?!
**数据范围:**
对于 $15\%$ 的数据,保证 $1\le n \le 10$,$1\le k \le 5$。
对于另外 $25\%$ 的数据,保证 $k=0$。
对于 $100\%$ 的数据,保证 $1\le n\le 10^6$,$0 \le k \le 10^6$,$-10^9 \le {A_0}_i \le 1$。