atcoder#AGC054F. [AGC054F] Decrement

[AGC054F] Decrement

配点 : 18001800

問題文

長さ NN の正整数列 AA 及び長さ N1N-1 の正整数列 BB が与えられます. あなたは,次の操作を好きな回数行うことができます.

  • 整数 i,ji,j (1i<jN1 \leq i < j \leq N) を選び,Ai,Aj,Bi,Bi+1,,Bj1A_i,A_j,B_i,B_{i+1},\cdots,B_{j-1} の値をそれぞれ 11 減らす. ただし,操作後に負になる値が存在してはならない.

ここで,操作を行える回数の最大値を mm とおきます. mm 回の操作後の AA としてありえる数列が何通りあるかを 998244353998244353 で割った余りを求めてください.

制約

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1Ai1091 \leq A_i \leq 10^9
  • 1Bi1091 \leq B_i \leq 10^9
  • 入力される値はすべて整数である

入力

入力は以下の形式で標準入力から与えられる.

NN

A1A_1 A2A_2 \cdots ANA_N

B1B_1 B2B_2 \cdots BN1B_{N-1}

出力

答えを出力せよ.

3
1 2 2
1 2
3

m=2m=2 であり,最終的な AA としては以下の 33 通りが考えられます.

  • A=(1,0,0)A=(1,0,0): (i,j)=(2,3)(i,j)=(2,3)(i,j)=(2,3)(i,j)=(2,3) で操作すればよい.
  • A=(0,1,0)A=(0,1,0): (i,j)=(1,3)(i,j)=(1,3)(i,j)=(2,3)(i,j)=(2,3) で操作すればよい.
  • A=(0,0,1)A=(0,0,1): (i,j)=(1,2)(i,j)=(1,2)(i,j)=(2,3)(i,j)=(2,3) で操作すればよい.
4
1 1 1 1
2 2 2
1

BB の値が異なっていても AA の値が同じなら区別しないことに注意してください.

4
2 2 3 4
3 1 4
3