Almost Sorted

AtCoder
IDarc132_c
Time2000ms
Memory256MB
Difficulty
Given is a sequence $a_1,\dots,a_n$ consisting of $1,\dots, n$ and $-1$, along with an integer $d$. How many sequences $p_1,\dots,p_n$ satisfy the conditions below? Print the count modulo $998244353$. * $p_1,\dots,p_n$ is a permutation of $1,\dots, n$. * For each $i=1,\dots,n$, $a_i=p_i$ if $a_i\neq -1$. (That is, $p_1,\dots,p_n$ can be obtained by replacing the $-1$s in $a_1,\dots,a_n$ in some way.) * For each $i=1,\dots,n$, $|p_i - i|\le d$. ## Constraints * $1 \le d \le 5$ * $d < n \le 500$ * $1\le a_i \le n$ or $a_i=-1$. * $|a_i-i|\le d$ if $a_i\neq -1$. * $a_i\neq a_j$, if $i\neq j$ and $a_i, a_j \neq -1$. * All values in input are integers. ## Input Input is given from Standard Input in the following format: $n$ $d$ $a_1$ $\dots$ $a_n$ [samples]
Samples
Input #1
4 2
3 -1 1 -1
Output #1
2

The conditions are satisfied by $(3,2,1,4)$ and $(3,4,1,2)$.
Input #2
5 1
2 3 4 5 -1
Output #2
0

The only permutation of $1,2,3,4,5$ that can be obtained by replacing the $-1$ is $(2,3,4,5,1)$, whose fifth term violates the condition, so the answer is $0$.
Input #3
16 5
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
Output #3
794673086

Print the count modulo $998244353$.
API Response (JSON)
{
  "problem": {
    "name": "Almost Sorted",
    "description": {
      "content": "Given is a sequence $a_1,\\dots,a_n$ consisting of $1,\\dots, n$ and $-1$, along with an integer $d$. How many sequences $p_1,\\dots,p_n$ satisfy the conditions below? Print the count modulo $998244353$.",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "arc132_c"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Given is a sequence $a_1,\\dots,a_n$ consisting of $1,\\dots, n$ and $-1$, along with an integer $d$. How many sequences $p_1,\\dots,p_n$ satisfy the conditions below? Print the count modulo $998244353$....",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments