hzCPPOJ

逆序对(暴力,mergesort)

时间限制:  1 s      内存限制:   128 MB
提交:90     正确:22     分值:96

题目描述

小A拥有一个长度为n的数组a,并且他对这个数组中的逆序对数量感兴趣。

逆序对的定义是,在数组中,如果前面的数字大于后面的数字,并且这两个数字的索引满足前者小于后者的条件,则它们构成一对逆序对。

换句话说,对于数组中的任意两个元素a[i]和a[j],如果a[i] > a[j]且i < j,则(i, j)被称为一对逆序对。例如,数组{1,2,3,4}中逆序对的数量为0,而数组{4,3,2,1}中包含6个逆序对,分别是(4,3),(4,2),(4,1),(3,2),(3,1),(2,1)。

现在,小A想要知道他的数组中到底存在多少这样的逆序对。


 

输入

第一行一个数n

接下来一行n个数,表示数组a

保证a数组里没有相同的元素

输出

输出一个数,逆序对个数

样例

样例输入:
10 1 2 3 4 5 6 7 8 9 10
样例输出:
0
样例输入:
5 1 3 5 2 4
样例输出:
3

提示

样例2数据说明:(2, 4), (3, 4), (3, 5)

数据范围

 

80%的数据n <= 1000

100%的数据n <= 100000, a[i] <= 109

 

提交人

AmberXie

来源/分类