Kanade's trio
TimeLimit:2000MS MemoryLimit:524288KB
64-bit integer IO format:%I64d
Problem Description
Give you an array $A[1..n]$,you need to calculate how many tuples $(i,j,k)$ satisfy that $(i<j<k)$ and $((A[i]~xor~A[j])<(A[j]~xor~A[k]))$
There are T test cases.
$1\leq T\leq 20$
$1\leq \sum n\leq 5*10^5$
$0\leq A[i] <2^{30}$
Input
There is only one integer T on first line.
For each test case , the first line consists of one integer $n$ ,and the second line consists of $n$ integers which means the array $A[1..n]$
Output
For each test case , output an integer , which means the answer.