INVCNT - Inversion Count

Let A[0...n - 1] be an array of n distinct positive integers. If i < j and A[i] > A[j] then the pair (i, j) is called an inversion of A. Given n and an array A your task is to find the number of inversions of A.

Input

The first line contains t, the number of testcases followed by a blank space. Each of the t tests start with a number n (n <= 200000). Then n + 1 lines follow. In the ith line a number A[i - 1] is given (A[i - 1] <= 10^7). The (n + 1)th line is a blank space.

Output

For every test output one line giving the number of inversions of A.

Example

Input:
2

3
3
1
2

5
2
3
8
6
1


Output:
2
5

Added by:Paranoid Android
Date:2010-03-06
Time limit:3.599s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: PERL6

hide comments
2015-07-11 16:29:13
use long long
2015-07-02 10:53:20 chin
AC in 2nd attempt!!....A very good application of Mergesort!!
2015-06-28 18:32:31 mohit
mergesort .. AC after 4 WA!!! give special attention to type...
2015-06-24 14:14:31 THECOLDONE
after reading BIT done it by merge algo
ac in 1st go
2015-06-24 09:18:21 Aditya Kumar
Be careful with overflows
2015-06-20 15:42:51 Sahil
You only need the inversion count in long long (guess why? look at the worst case for this problem).
rest everything(size of array, array elements, all index) can be int.
2015-06-20 05:22:08 [Mayank Pratap]
After months finally AC :)
2015-06-18 18:56:34 kartikay singh
after lots of TLEs
finally AC:)
2015-06-13 13:35:15
HINT: Dont use vector for this problem with your custom designed insert. That will slow things out. Use array instead. Cost me 4 TLEs... phew. Else Merge Sort works nice. and yeah the long long thingy too.
2015-06-13 00:28:26
variation of Merge Sort algo.
output type is long long.
Thank You @ankur manchanda @Nitesh Tiwari
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.