CF1608F MEX counting
题目描述
对于一个非负整数数组 $c$,$MEX(c)$ 表示不在数组中出现的最小非负整数。例如,$MEX([0, 1, 3]) = 2$,$MEX([42]) = 0$。
给定整数 $n, k$,以及一个数组 $[b_1, b_2, \ldots, b_n]$。
请你求满足以下条件的数组 $[a_1, a_2, \ldots, a_n]$ 的个数:
- 对于每个 $i$,$0 \le a_i \le n$。
- 对于每个 $i$($1 \le i \le n$),都有 $|MEX([a_1, a_2, \ldots, a_i]) - b_i| \le k$。
由于答案可能很大,请输出对 $998\,244\,353$ 取模后的结果。
输入格式
输入的第一行包含两个整数 $n, k$($1 \le n \le 2000$,$0 \le k \le 50$)。
第二行包含 $n$ 个整数 $b_1, b_2, \ldots, b_n$($-k \le b_i \le n+k$),表示数组 $b$ 的元素。
输出格式
输出一个整数,表示满足条件的数组的个数,对 $998\,244\,353$ 取模。
说明/提示
由 ChatGPT 4.1 翻译