#ds103. 逆序对2

逆序对2

逆序对2

题目描述

有 nn 个数 a1,a2,…,ana_1, a_2, \dots, a_n,对于其中的两个数字 x,yx, y,如果满足 xx 出现的位置在 yy 出现的位置前面并且 xx 比 yy 大,则称 (x,y)(x,y) 为数组 aa 的一个逆序对。请问数组 aa 的逆序对一共有多少个?形式化的说,请求出有多少组 (i,j)(i,j) 满足 i<ji < j 并且 ai>aja_i>a_j。

输入格式

第一行一个整数 nn。

接下来一行 nn 个整数,a1,a2,…,ana_1, a_2, \dots, a_n。

输出格式

一行一个数,表示答案。

样例输入

4
4 2 3 1

样例输出

5

样例解释

5 个逆序对分别为 (4,2),(4,3),(4,1),(2,1),(3,1)(4,2),(4,3),(4,1),(2,1),(3,1)。

数据范围

对于 100%100\% 的数据,保证 2≤n≤100000,1≤ai≤n2\leq n\leq 100000, 1\leq a_i\leq n 并且每个数字都只会出现一次。