#include <iostream>
using namespace std;
long long inversionCount(long long a[], long long f, long long mid, long long l){
long long x[200005], y[200005], c=0;
long long i,j,xl,yl,k;
//cout << "Sorted array 1 with f and l " << f << " " << mid << " - ";
for(i=0;i<(mid-f)+1;i++){
x[i] = a[f+i];
//cout << x[i] << " ";
}
//cout << "\n";
xl = i;
//cout << "Sorted array 2 with f and l " << mid+1 << " " << l << " - ";
for(i=0;i<l-mid;i++){
y[i] = a[mid+1+i];
//cout << y[i] << " ";
}
//cout << "\n";
yl = i;
i=0; j=0, k=f;
while(i<xl && j<yl){
if(x[i] > y[j]){
//cout << x[i] << " " << y[j] << "\n";
c = c + (xl-i);
a[k] = y[j];
j++;
} else {
a[k] = x[i];
i++;
}
k++;
}
if(i<xl){
a[k] = x[i];
//cout << x[i] << "AA\n";
k++; i++;
}
if(j<yl){
a[k] = y[j];
k++; j++;
}
return c;
}
long long findInversions(long long a[], long long f, long long l){
long long x,y,z;
if(f>=l){
return 0;
}
long long mid = (f+l)/2;
//cout << "11111 " << f << " " << mid << "\n";
//cout << "22222 " << mid+1 << " " << l << "\n";
x = findInversions(a,f,mid);
y = findInversions(a,mid+1,l);
//cout << "3333" << f << " " << mid << " " << l << "\n";
z = inversionCount(a,f,mid,l);
return x+y+z;
}
int main() {
long long t,i,a[200005];
cin >> t;
while(t--){
long long n;
cin >> n;
for(i=0;i<n;i++){
cin >> a[i];
}
long long c = findInversions(a,0,n-1);
cout << c << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbG9uZyBsb25nIGludmVyc2lvbkNvdW50KGxvbmcgbG9uZyBhW10sIGxvbmcgbG9uZyBmLCBsb25nIGxvbmcgbWlkLCBsb25nIGxvbmcgbCl7Cglsb25nIGxvbmcgeFsyMDAwMDVdLCB5WzIwMDAwNV0sIGM9MDsKCWxvbmcgbG9uZyBpLGoseGwseWwsazsKCS8vY291dCA8PCAiU29ydGVkIGFycmF5IDEgd2l0aCBmIGFuZCBsICIgPDwgZiA8PCAiICIgPDwgbWlkIDw8ICIgLSAiOwoJZm9yKGk9MDtpPChtaWQtZikrMTtpKyspewoJCXhbaV0gPSBhW2YraV07CgkJLy9jb3V0IDw8IHhbaV0gPDwgIiAiOwoJfQoJLy9jb3V0IDw8ICJcbiI7Cgl4bCA9IGk7CgkKCS8vY291dCA8PCAiU29ydGVkIGFycmF5IDIgd2l0aCBmIGFuZCBsICIgPDwgbWlkKzEgPDwgIiAiIDw8IGwgPDwgIiAtICI7Cglmb3IoaT0wO2k8bC1taWQ7aSsrKXsKCQl5W2ldID0gYVttaWQrMStpXTsKCQkvL2NvdXQgPDwgeVtpXSA8PCAiICI7Cgl9CgkvL2NvdXQgPDwgIlxuIjsKCXlsID0gaTsKCQoJaT0wOyBqPTAsIGs9ZjsKCXdoaWxlKGk8eGwgJiYgajx5bCl7CgkJaWYoeFtpXSA+IHlbal0pewoJCQkvL2NvdXQgPDwgeFtpXSA8PCAiICIgPDwgeVtqXSA8PCAiXG4iOwoJCQljID0gYyArICh4bC1pKTsKCQkJYVtrXSA9IHlbal07CgkJCWorKzsKCQl9IGVsc2UgewoJCQlhW2tdID0geFtpXTsKCQkJaSsrOwoJCX0KCQlrKys7Cgl9CgkKCWlmKGk8eGwpewoJCWFba10gPSB4W2ldOwoJCS8vY291dCA8PCB4W2ldIDw8ICJBQVxuIjsKCQlrKys7IGkrKzsKCX0KCQoJaWYoajx5bCl7CgkJYVtrXSA9IHlbal07CgkJaysrOyBqKys7Cgl9CgkKCXJldHVybiBjOwp9Cgpsb25nIGxvbmcgZmluZEludmVyc2lvbnMobG9uZyBsb25nIGFbXSwgbG9uZyBsb25nIGYsIGxvbmcgbG9uZyBsKXsKCWxvbmcgbG9uZyB4LHksejsKCWlmKGY+PWwpewoJCXJldHVybiAwOwoJfQoJCglsb25nIGxvbmcgbWlkID0gKGYrbCkvMjsKCS8vY291dCA8PCAiMTExMTEgIiA8PCBmIDw8ICIgIiA8PCBtaWQgPDwgIlxuIjsgIAoJLy9jb3V0IDw8ICIyMjIyMiAiIDw8IG1pZCsxIDw8ICIgIiA8PCBsIDw8ICJcbiI7Cgl4ID0gZmluZEludmVyc2lvbnMoYSxmLG1pZCk7Cgl5ID0gZmluZEludmVyc2lvbnMoYSxtaWQrMSxsKTsKCS8vY291dCA8PCAiMzMzMyIgPDwgZiA8PCAiICIgPDwgbWlkIDw8ICIgIiA8PCBsIDw8ICJcbiI7Cgl6ID0gaW52ZXJzaW9uQ291bnQoYSxmLG1pZCxsKTsKCQoJcmV0dXJuIHgreSt6Owp9CgppbnQgbWFpbigpIHsKCWxvbmcgbG9uZyB0LGksYVsyMDAwMDVdOwoJCgljaW4gPj4gdDsKCQoJd2hpbGUodC0tKXsKCQlsb25nIGxvbmcgbjsKCQljaW4gPj4gbjsKCQkKCQlmb3IoaT0wO2k8bjtpKyspewoJCQljaW4gPj4gYVtpXTsKCQl9CgkJCgkJbG9uZyBsb25nIGMgPSBmaW5kSW52ZXJzaW9ucyhhLDAsbi0xKTsKCQljb3V0IDw8IGMgPDwgIlxuIjsKCX0KCXJldHVybiAwOwp9