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
2013-04-15 16:21:46 Aman Verma
Guya just long long dis cost me much .. not only change the inversion_count to long long but change the array holding it also to long long
and no need to take the test case as long long
and do use scanf and printf coz it also cost me 1 TLE :(
but Finally AC :)

<Use English, not internet gibberish. Comment left because it includes some relevant information. At least that's what I assume, because IT'S HARD TO READ!!>

Last edit: 2012-12-20 07:53:47
2013-04-15 16:21:46 natsu
Thanks a lot guys.Its true .got AC after taking long long int for the no. of inversions
2013-04-15 16:21:46 Yashodhan S. Katte
@Rishabh use printf instead of cout and see.
2013-04-15 16:21:46 Haidar Abboud
No need for merge sort - you can just view the problem as a standard BIT exercise :P
2013-04-15 16:21:46 Rishabh Baid
would O(n log n) get accepted ? I tried using merge sort but got TLE.
2013-04-15 16:21:46 StupidGuy
Use long long int to count inversions.
2013-04-15 16:21:46 spock
wohooo..just changed the number of inversions to long long and got accepted.. :)

Last edit: 2012-07-01 06:01:53
2013-04-15 16:21:46 data
@Anup use return 0
2013-04-15 16:21:46 krishna_0507
what is this runtime error(NZEC)???m using merge sort correctly then y is it showing me then !!!!!i hv implemaented mah code code in c and used int main and returned 0 also.....then also it is showing me that error.....can anyone help me ???? thanks in advance....
2013-04-15 16:21:46 I_AM
Thanks معاذ for your hint. Not taking long long cost me also many wrong answers. Others beware!
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.