AT_agc023_e [AGC023E] Inversions

Description

[problemUrl]: https://atcoder.jp/contests/agc023/tasks/agc023_e すぬけ君は、長さ $ N $ の整数列 $ A $ を持っています。 すぬけ君は、$ (1,\ 2,\ ...,\ N) $ の順列 $ P $ であって、次の条件を満たすものが好きです。 - 全ての $ i $ ( $ 1\ \leq\ i\ \leq\ N $ ) について、$ P_i\ \leq\ A_i $ すぬけ君は、条件を満たすような順列の転倒数 ( ※ ) に興味を持ちました。 すぬけ君のために、条件を満たすような全ての順列について転倒数を求め、その総和を求めてください。 ただし、答えは非常に大きくなることがあるので、$ 10^9\ +\ 7 $ で割った余りを求めてください。

Input Format

N/A

Output Format

N/A

Explanation/Hint

### 注釈 ある長さ $ N $ の数列 $ Z $ の転倒数とは、整数 $ i,\ j $ ( $ 1\ \leq\ i\ \ Z_j $ を満たすものの個数を意味します。 ### 制約 - $ 1\ \leq\ N\ \leq\ 2\ \times\ 10^5 $ - $ 1\ \leq\ A_i\ \leq\ N $ ( $ 1\ \leq\ i\ \leq\ N $ ) - 入力はすべて整数である。 ### Sample Explanation 1 条件を満たす順列は $ (1,2,3) $, $ (1,3,2) $, $ (2,1,3) $, $ (2,3,1) $ の $ 4 $ つです。 それぞれの転倒数は $ 0 $, $ 1 $, $ 1 $, $ 2 $ なので、その総和である $ 4 $ を出力します。 ### Sample Explanation 2 条件を満たす順列は $ (4,2,5,1,6,3) $ のみです。 この順列の転倒数は $ 7 $ なので、$ 7 $ を出力します。 ### Sample Explanation 3 条件を満たす順列は $ 1 $ つもありません。