1 #include<stdio.h>
2 #include<string.h>
3
4 int a[1000004],tmp1[500002],tmp2[500002];
5 long long cnt;
6 void merge(int start,int mid,int end){
7 int i,j,k;
8 for(k=0,i=start; i<=mid; i++)
9 tmp1[k++]=a[i];
10 tmp1[k]=0x7fffffff;
11 for(k=0,i=mid+1; i<=end; i++)
12 tmp2[k++]=a[i];
13 tmp2[k]=0x7fffffff;
14 for(i=j=0,k=start; k<=end; k++){
15 if(tmp1[i]<=tmp2[j]){
16 a[k]=tmp1[i++];
17 }else{
18 a[k]=tmp2[j++];
19 cnt+=mid-start+1-i;
20 }
21 }
22 }
23
24 void mergeSort(int start,int end){
25 if(start<end){
26 int mid=(start+end)/2;
27 mergeSort(start,mid);
28 mergeSort(mid+1,end);
29 merge(start,mid,end);
30 }
31 }
32
33 int main()
34 {
35 int i,T,n;
36 scanf("%d",&T);
37 while(T--){
38 scanf("%d",&n);
39 for(cnt=0,i=0;i<n;i++)
40 scanf("%d",&a[i]);
41 mergeSort(0,n-1);
42 printf("%lld\n",cnt);
43 }
44 return 0;
45 }