#ACM0084. 逆序对

逆序对

题目描述

小L最近在复习逆序对的概念,需要统计一个序列中逆序对的数量。逆序对的定义是:对于序列中两个元素 aia_i 和 aja_j,如果 i<ji \lt j 且 ai>aja_i \gt a_j 则 (i,j)(i, j) 构成一个逆序对。两个逆序对只要下标不同(即 i1≠i2i_1 \neq i_2 或 j1≠j2j_1 \neq j_2),就视为不同的逆序对。

输入格式

第一行输入一个整数 n (2≤n≤106)n\ (2 \leq n \leq 10^6),表示序列的长度。

第二行输入 nn 个整数,第 ii 个数表示 ai (1≤ai≤30)a_i\ (1 \leq a_i \leq 30)。

输出格式

输出序列中逆序对的总数量。

输入输出样例 #1

输入 #1

4
3 3 2 1

输出 #1

5

说明/提示

该序列中的逆序对为:

(1,3)(1, 3)、(1,4)(1, 4)、(2,3)(2, 3)、(2,4)(2, 4)、(3,4)(3, 4),共 55 个。