/ XMU_ACM / 题库 /

小丑的炸弹

小丑的炸弹

Description

小丑在某个地方安了一个炸弹,需要输入正确的密码才能解除,而他已经把得到密码的方式告诉了蝙蝠侠。
众所周知,\(n\)阶全排列共有\(n!\)个,求出它们中所有字典序小于等于给定排列的排列逆序对数目之和,就是密码。

Format

Input

每个测试点仅有一组测试数据。
第一行一个整数\(n(1<=n<=10^6)\),表示排列长度。
接下来\(n\)行,每行一个整数,第\(i\)行的数表示给定排列的第\(i\)个数\(a_i\)。
保证输入数据是一个排列。

Output

输出一行一个整数,为答案除以\(10^9+7\)所得余数。

Sample 1

Input

3
2
1
3

Output

2

Sample 2

Input

见附加文件中inversion.in。

Output

见附加文件中inversion.out。

Subtask

子任务1(10分):\(n<=10\)。
子任务2(20分):\(a_i=n-i+1\)。
子任务3(30分):\(n<=2000\)。
子任务4(40分):无附加限制。

Limitation

2s, 1GB for each test case.

Source

Vijos Original

信息

ID
1051
难度
7
分类
(无)
标签
(无)
递交数
44
已通过
8
通过率
18%
上传者