atcoder#AGC023E. [AGC023E] Inversions
[AGC023E] Inversions
配点 : 点
問題文
すぬけ君は、長さ の整数列 を持っています。 すぬけ君は、 の順列 であって、次の条件を満たすものが好きです。
- 全ての ( ) について、
すぬけ君は、条件を満たすような順列の転倒数 ( ※ ) に興味を持ちました。 すぬけ君のために、条件を満たすような全ての順列について転倒数を求め、その総和を求めてください。 ただし、答えは非常に大きくなることがあるので、 で割った余りを求めてください。
注釈
ある長さ の数列 の転倒数とは、整数 ( ) の組であって、 を満たすものの個数を意味します。
制約
- ( )
- 入力はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
出力
条件を満たすすべての順列の転倒数の総和を で割った余りを出力せよ。
3
2 3 3
4
条件を満たす順列は , , , の つです。 それぞれの転倒数は , , , なので、その総和である を出力します。
6
4 2 5 1 6 3
7
条件を満たす順列は のみです。 この順列の転倒数は なので、 を出力します。
5
4 4 4 4 4
0
条件を満たす順列は つもありません。
30
22 30 15 20 10 29 11 29 28 11 26 10 18 28 22 5 29 16 24 24 27 10 21 30 29 19 28 27 18 23
848414012