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 $ で割った余りを求めてください。