#MOCK41. 缓坡(adif)

0

缓坡(adif)

缓坡(adif)

题目描述

Y 同学要铺一条长度为 nn 的缓坡,第 ii 段的高度为 bib_i。每段高度必须是 11 到 mm 之间的整数,并且相邻两段高度差不能超过 dd:

∣bi−bi−1∣≤d(2≤i≤n).|b_i-b_{i-1}|\le d\quad(2\le i\le n).

现在给出数组 aa。若 ai=0a_i=0,表示第 ii 段高度尚未确定;若 ai>0a_i>0,则必须令 bi=aib_i=a_i。请计算有多少种合法的缓坡方案,答案对 998244353998244353 取模。

输入格式

第一行包含三个整数 n,m,dn,m,d。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

输出格式

输出一行一个整数,表示合法方案数。

样例

样例输入 #1

5 4 1
0 2 0 0 3

样例输出 #1

18

数据范围与约定

对于 100%100\% 的数据,保证 1≤n,m≤50001\le n,m\le 5000,0≤d<m0\le d<m,0≤ai≤m0\le a_i\le m。

测试点编号 分值 n,m≤n,m\le 特殊性质
1∼21\sim 2 1010 88 无
3∼53\sim 5 1515 500500 所有 aia_i 都已确定
6∼86\sim 8 10001000 d=1d=1
9∼129\sim 12 2020 20002000 只有很少位置已确定
13∼1613\sim 16 35003500 无
17∼2017\sim 20 50005000