#include #include using namespace std; #define N 50010 typedef long long ll; int getint(){ int x=0,tmp=1; char c=getchar(); while( (c<'0'||c>'9')&&c!='-' ) c=getchar(); if( c == '-' ) c=getchar() , tmp = -1; while(c>='0'&&c<='9') x*=10,x+=(c-'0'),c=getchar(); return x*tmp; } int t , n , lb[ N ] , a[ N ]; ll BIT[ 2 ][ N ] , ans; void build(){ for( int i = 1 ; i < N ; i ++ ) lb[ i ] = i & ( -i ); } void insert( int no , int x , ll dlt ){ while( x <= n ){ BIT[ no ][ x ] += dlt; x += lb[ x ]; } } ll query( int no , int x ){ ll tsum = 0; while( x ){ tsum += BIT[ no ][ x ]; x -= lb[ x ]; } return tsum; } void init(){ n = getint(); ans = 0; for( int i = 1 ; i <= n ; i ++ ){ a[ i ] = getint(); for( int j = 0 ; j < 2 ; j ++ ) BIT[ j ][ i ] = 0ll; } } void solve(){ ll presum = 0; for( int i = 1 ; i <= n ; i ++ ){ ll tq = query( 0 , a[ i ] ); ans += query( 1 , a[ i ] ); insert( 1 , a[ i ] , presum ); insert( 0 , a[ i ] , 1 ); presum += tq; } cout << ans << endl; } int main(){ build(); t = getint(); while( t -- ){ init(); solve(); } }