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 $ つもありません。