AT_arc212_f [ARC212F] Add Integer
Description
整数 $ N,M,X $ が与えられます。
以下の一連の操作を行い、長さ $ N $ の非負整数列 $ A $ を作ります。
- 長さ $ 2 $ の整数列 $ A=(A_1,A_2) $ を自由に決める。
- その後、 $ A $ に対して以下の操作を $ N-2 $ 回行う。
- $ k=|A| $ とする。 $ x=A_{k-1}, y=A_k $ とする。 $ A $ の末尾に $ x+y $ または $ y-x $ を追加する。
また、整数列 $ A $ が良い数列であるとは、以下を満たすことを言います。
- $ 0 \le A_i \le M \ (1 \le i \le N) $
- $ A_N=X $
操作によって得られる全ての良い数列に対する $ A_1 \times A_2 $ の総和を $ 998244353 $ で割ったあまりを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ X $
Output Format
答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
$ (0,3,3),(1,4,3),(2,1,3) $ などが考えられます。
あり得る数列全ての $ A_1 \times A_2 $ の和は $ 8 $ となります。
### Constraints
- $ 3 \leq N \leq 2 \times 10^5 $
- $ 1 \leq X \leq M \leq 2 \times 10^5 $
- 入力される値は全て整数