排队
题号:NC245314
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

The__Flash 打游戏太投入了,把 PLMM 晾在了一边。为了弥补 PLMM,The__Flash 带着 PLMM 和小喵去看电影。

电影院人山人海,队伍排成一条长长的线,两人一喵只能乖乖排队。队伍长度为 n,个体按照队头到队尾的顺序依次编号为 1,2,...,n,其中第 i 个个体的身高为 a_i。PLMM 见状想要出题考验一下 The__Flash。

一个长度为 n 的序列 a 的逆序对个数定义为满足 的不同 (i,j) 的对数,(i_1,j_1)(i_2,j_2) 不同当且仅当

n 个个体总共有 种排队方式,记 P_i(a) 表示序列 a 的第 i 种排队方式,cnt(P_i(a)) 表示 P_i 的逆序对个数。PLMM 想知道 ,由于 The__Flash 傻乎乎的,所以请你帮他回答 PLMM 的问题。

输入描述:

第一行输入一个整数 

第二行输入 n 个整数表示

输出描述:

输出一个整数表示答案,由于结果可能太大,因此你只需要输出结果对  取模之后的结果。
示例1

输入

复制
3
1 2 3

输出

复制
9
示例2

输入

复制
7
2 4 4 3 1 1 2

输出

复制
45360