Preparando MOJI

MEX counting

4000ms 262144K

Description:

For an array $$$c$$$ of nonnegative integers, $$$MEX(c)$$$ denotes the smallest nonnegative integer that doesn't appear in it. For example, $$$MEX([0, 1, 3]) = 2$$$, $$$MEX([42]) = 0$$$.

You are given integers $$$n, k$$$, and an array $$$[b_1, b_2, \ldots, b_n]$$$.

Find the number of arrays $$$[a_1, a_2, \ldots, a_n]$$$, for which the following conditions hold:

  • $$$0 \le a_i \le n$$$ for each $$$i$$$ for each $$$i$$$ from $$$1$$$ to $$$n$$$.

  • $$$|MEX([a_1, a_2, \ldots, a_i]) - b_i| \le k$$$ for each $$$i$$$ from $$$1$$$ to $$$n$$$.

As this number can be very big, output it modulo $$$998\,244\,353$$$.

Input:

The first line of the input contains two integers $$$n, k$$$ ($$$1 \le n \le 2000$$$, $$$0 \le k \le 50$$$).

The second line of the input contains $$$n$$$ integers $$$b_1, b_2, \ldots, b_n$$$ ($$$-k \le b_i \le n+k$$$) — elements of the array $$$b$$$.

Output:

Output a single integer — the number of arrays which satisfy the conditions from the statement, modulo $$$998\,244\,353$$$.

Sample Input:

4 0
0 0 0 0

Sample Output:

256

Sample Input:

4 1
0 0 0 0

Sample Output:

431

Sample Input:

4 1
0 0 1 1

Sample Output:

509

Sample Input:

5 2
0 0 2 2 0

Sample Output:

6546

Sample Input:

3 2
-2 0 4

Sample Output:

11

Informação

Codeforces

Provedor Codeforces

Código CF1608F

Tags

combinatoricsdpimplementation

Submetido 0

BOUA! 0

Taxa de BOUA's 0%

Datas 09/05/2023 10:19:43

Relacionados

Nada ainda