AT_past202112_o ペアスコア

Description

[problemUrl]: https://atcoder.jp/contests/past202112-open/tasks/past202112_o $ 1 $ から $ N $ の番号がついた $ N $ 人の人がいます。人 $ i $ は整数 $ B_i $ が書かれたゼッケンをつけています。 この $ N $ 人を横一列に並べる方法は $ N! $ 通りありますが、各並びについて、以下で定めるスコアを求め、その総和を $ 998244353 $ で割った余りを求めてください。 - 左から $ i $ 番目の人のゼッケンにかかれている整数を $ A_i $ とする。$ f(i,j) $ を、$ A_j-A_i=j-i $ であるとき $ S_{j-i} $、それ以外のとき $ 0 $ とする。$ 1\leq\ i\

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ B_1 $ $ \ldots $ $ B_N $ $ S_1 $ $ \ldots $ $ S_N $

Output Format

答えを出力せよ。

Explanation/Hint

### 制約 - $ 2\ \leq\ N\ \leq\ 10^5 $ - $ 1\ \leq\ B_i\ \leq\ 10^5 $ - $ 1\ \leq\ S_i\ \leq\ 998244352 $ - 入力に含まれる値は全て整数である ### Sample Explanation 1 \- 左から人 $ 1,2,3 $ と並べたとき、$ A=(3,2,1) $ となり、スコアは $ f(1,2)+f(1,3)+f(2,3)=0+0+0=0 $ - 左から人 $ 1,3,2 $ と並べたとき、$ A=(3,1,2) $ となり、スコアは $ f(1,2)+f(1,3)+f(2,3)=0+0+1=1 $ - 左から人 $ 2,1,3 $ と並べたとき、$ A=(2,3,1) $ となり、スコアは $ f(1,2)+f(1,3)+f(2,3)=1+0+0=1 $ - 左から人 $ 2,3,1 $ と並べたとき、$ A=(2,1,3) $ となり、スコアは $ f(1,2)+f(1,3)+f(2,3)=0+0+0=0 $ - 左から人 $ 3,1,2 $ と並べたとき、$ A=(1,3,2) $ となり、スコアは $ f(1,2)+f(1,3)+f(2,3)=0+0+0=0 $ - 左から人 $ 3,2,1 $ と並べたとき、$ A=(1,2,3) $ となり、スコアは $ f(1,2)+f(1,3)+f(2,3)=1+10+1=12 $ となるため、答えは $ 0+1+1+0+0+12=14 $ になります。 ### Sample Explanation 2 \- 左から人 $ 1,2,3 $ と並べたとき、$ A=(3,3,1) $ となり、スコアは $ f(1,2)+f(1,3)+f(2,3)=0+0+0=0 $ - 左から人 $ 1,3,2 $ と並べたとき、$ A=(3,1,3) $ となり、スコアは $ f(1,2)+f(1,3)+f(2,3)=0+0+0=0 $ - 左から人 $ 2,1,3 $ と並べたとき、$ A=(3,3,1) $ となり、スコアは $ f(1,2)+f(1,3)+f(2,3)=0+0+0=0 $ - 左から人 $ 2,3,1 $ と並べたとき、$ A=(3,1,3) $ となり、スコアは $ f(1,2)+f(1,3)+f(2,3)=0+0+0=0 $ - 左から人 $ 3,1,2 $ と並べたとき、$ A=(1,3,3) $ となり、スコアは $ f(1,2)+f(1,3)+f(2,3)=0+10+0=10 $ - 左から人 $ 3,2,1 $ と並べたとき、$ A=(1,3,3) $ となり、スコアは $ f(1,2)+f(1,3)+f(2,3)=0+10+0=10 $ となるため、答えは $ 0+0+0+0+10+10=20 $ になります。 ### Sample Explanation 3 $ 998244353 $ で割った余りを求めてください。