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] ≤ 107). 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
2021-02-03 19:32:52
A really good sum. But wasted so much time in tle. Pass by reference to remove tle.
2021-01-21 09:16:47
How is it related to graphs and bitmasks??
2021-01-15 16:03:56
monka s . naive array approach doesnt work , gives tle

Last edit: 2021-01-15 16:04:21
2021-01-14 16:29:27
monkagiga count normal variable and std::count messed me up
2021-01-01 15:07:07
Very Weak test Cases.
try a={84, 2, 37, 3, 67, 82, 19, 97, 91, 63, 27, 6, 13, 90, 63, 89, 100, 60, 47, 96, 54, 26, 64, 50, 71, 16, 6, 40, 84, 93, 67, 85, 16, 22, 60 };
my solution gave output 245 but it got accepted , correct answer=290

[NG]: Your case is invalid (*distinct* integers).

Last edit: 2021-01-01 22:42:20
2020-11-28 14:06:41
Take array size 10^7+1 to remove SIGSEGV error
2020-08-20 12:56:34
make bit array of size 2e5+5, otherwise Segmentation falut will come
2020-07-30 15:26:02
answer will be in range of long long
2020-07-21 18:11:41
use long long.
2020-07-03 16:48:44
The concept is covered very well here -> https://www.youtube.com/watch?v=7_AJfusC6UQ
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.