AT_arc204_a [ARC204A] Use Udon Coupon
Description
正整数 $ N, L, R $ と長さ $ N $ の正整数列 $ A = (A_{1}, A_{2}, \dots, A_{N}), B = (B_{1}, B_{2}, \dots, B_{N}) $ が与えられます。
空で初期化された数列 $ Q $ と、 $ 0 $ で初期化された変数 $ C $ と、 $ 1 $ で初期化された変数 $ i $ を用いて以下の操作を $ 2N $ 回行います。
- 以下の行動 $ 1, 2 $ のうち、いずれかを選んで行う。
- 行動 $ 1 $ : $ Q $ の末尾に $ i $ を挿入し、 $ C $ を $ \max(0, C - A_{i}) $ に置き換える。その後、 $ i $ を $ 1 $ 増やす。この行動は、操作前の $ i $ が $ N $ 以下のときのみ行える。
- 行動 $ 2 $ : $ Q $ の先頭の数を $ x $ として、 $ C $ に $ B_{x} $ を加算する。その後、 $ Q $ の先頭の要素を削除する。この行動は、操作前の $ Q $ が空でないときのみ行える。
$ 2N $ 回の操作の方法であって、最終的な $ C $ が $ L $ 以上 $ R $ 以下であるようなものの場合の数を $ 998244353 $ で割ったあまりを求めてください。
Input Format
入力は以下の形式で標準入力から与えられます。
> $ N $ $ L $ $ R $ $ A_{1} $ $ A_{2} $ $ \dots $ $ A_{N} $ $ B_{1} $ $ B_{2} $ $ \dots $ $ B_{N} $
Output Format
答えを出力してください。
Explanation/Hint
### Sample Explanation 1
例えば以下のように $ 4 $ 回の操作を行うことができます。
- 行動 $ 1 $ をする。 $ Q = (1), C = 0, i = 2 $ と変化する。
- 行動 $ 2 $ をする。 $ Q = (), C = 924, i = 2 $ と変化する。
- 行動 $ 1 $ をする。 $ Q = (2), C = 757, i = 3 $ と変化する。
- 行動 $ 2 $ をする。 $ Q = (), C = 935, i = 3 $ と変化する。
上記のように操作すると、最終的な $ C $ が $ 100 $ 以上 $ 1000 $ 以下になります。そのような操作方法はこれしかないので、 $ 1 $ を出力します。
### Constraints
- $ 1\leq N\leq 5000 $
- $ 1\leq L \leq R \leq \sum B $
- $ 1\leq A_{i}\leq 5000 $
- $ 1\leq B_{i}\leq 5000 $
- 入力は全て整数