AT_arc132_c [ARC132C] Almost Sorted
Description
[problemUrl]: https://atcoder.jp/contests/arc132/tasks/arc132_c
$ 1,\dots,\ n $ と $ -1 $ からなる数列 $ a_1,\dots,a_n $ と整数 $ d $ が与えられます。 以下の条件を満たす数列 $ p_1,\dots,p_n $ はいくつありますか? 答えを $ 998244353 $ で割ったあまりを出力してください。
- $ p_1,\dots,p_n $ は $ 1,\dots,\ n $ の順列
- $ i=1,\dots,n $ について、 $ a_i\neq\ -1 $ ならば $ a_i=p_i $ (つまり、$ a_1,\dots,a_n $ の $ -1 $ の項を適切に置き換えることで $ p_1,\dots,p_n $ に書き換えできる)
- $ i=1,\dots,n $ について、 $ |p_i\ -\ i|\le\ d $
Input Format
入力は以下の形式で標準入力から与えられる。
> $ n $ $ d $ $ a_1 $ $ \dots $ $ a_n $
Output Format
条件を満たす数列の数を $ 998244353 $ で割ったあまりを出力せよ。
Explanation/Hint
### 制約
- $ 1\ \le\ d\ \le\ 5 $
- $ d\