配点 : 400 点
問題文
長さ n の数列 S=(s1,s2,…,sn) がすべての i (1≤i≤n−1) に対して si≤si+1 を満たすとき、かつそのときに限り「数列 S は広義単調増加である」と呼びます。
広義単調増加な長さ N の整数列 $A = (a_1, a_2, \dots, a_N), B = (b_1, b_2, \dots, b_N)$ が与えられます。
このとき、次の条件を満たす広義単調増加な長さ N の整数列 C=(c1,c2,…,cN) を考えます。
- すべての i (1≤i≤N) に対して ai≤ci≤bi が成り立つ。
整数列 C としてあり得る数列の個数を 998244353 で割ったあまりを求めてください。
制約
- 1≤N≤3000
- 0≤ai≤bi≤3000 (1≤i≤N)
- 整数列 A,B は広義単調増加である。
- 入力はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
N
a1 a2 … aN
b1 b2 … bN
出力
C としてあり得る数列の個数を 998244353 で割ったあまりを出力せよ。
2
1 1
2 3
5
C としてあり得る数列は次の 5 個です。
- (1,1)
- (1,2)
- (1,3)
- (2,2)
- (2,3)
数列 (2,1) は広義単調増加でないため条件を満たさないことに注意してください。
3
2 2 2
2 2 2
1
C としてあり得る数列は次の 1 個です。
10
1 2 3 4 5 6 7 8 9 10
1 4 9 16 25 36 49 64 81 100
978222082
個数を 998244353 で割ったあまりを求めることに注意してください。