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 翻译