安徽科技工程大学程序设计在线考试系统Ver3.0

诚信考试,杜绝作弊!

问题 H: 5_D : The Number of Inversions

内存限制:512 MB 时间限制:1 S 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

The Number of Inversions

For a given sequence A={a0,a1,...an−1}, the number of pairs (i,j)where ai>aj and i<j,is called the number of inversions.The number of inversions is equals to the number of swaps of Bubble Sort defined in the following program:

     bubbleSort(A)

       cnt = 0 // the number of inversions 

     for i = 0 to A.length-1 

        for j = A.length-1 downto i+1 

           if A[j] < A[j-1] 

              swap(A[j], A[j-1]) 

               cnt++

       return cnt 

For the given sequence A, print the number of inversions of A. Note that you should not use the above program, which brings Time Limit Exceeded.

输入格式

In the first line, an integer n, the number of elements in A, is given. In the second line, the elements ai (i=0,1,..n−1) are given separated by space characters.

输出格式

Print the number of inversions in a line.

输入样例 复制

5
3 5 2 1 4

输出样例 复制

6

数据范围与提示

1≤n≤200,000

0≤ai≤10^9

ai are all different