#7292. 1420B. B. Rock and Lever

0

1420B. B. Rock and Lever

1420B. B. Rock and Lever

CF1420B. Rock and Lever

时限: 1 秒 | 内存: 256 MB | 输入: 标准输入 | 输出: 标准输出

“你必须抬起大坝。用杠杆。我会把它给你。你必须用石头堵住运河。我不会把石头给你。”

Danik 急需石头和杠杆!显然,最简单的办法就是向 Hermit Lizard 要这些东西。

Hermit Lizard 同意把杠杆给 Danik。但要得到石头,Danik 需要解决如下问题。

给定一个正整数 $n$,以及一个由正整数组成的数组 $a$。任务是计算有多少对 $(i, j)$ 满足 $i < j$ 且 $a_i \& a_j \ge a_i \oplus a_j$,其中 $\&$ 表示按位与运算,$\oplus$ 表示按位异或运算。

Danik 已经解决了这个问题。但你能解决吗?

输入格式

每个测试点包含多组测试数据。

第一行包含一个正整数 $t$($1 \le t \le 10$),表示测试用例的组数。接下来是每组测试用例的描述。

每组测试用例的第一行包含一个正整数 $n$($1 \le n \le 10^5$),表示数组的长度。

第二行包含 $n$ 个正整数 $a_i$($1 \le a_i \le 10^9$),表示数组的元素。

保证所有测试用例中 $n$ 的总和不超过 $10^5$。

输出格式

对于每组测试用例,输出一个非负整数,表示满足条件的数对数量。

样例输入 1

5
5
1 4 3 7 10
3
1 1 1
4
6 2 5 3
2
2 4
1
1

样例输出 1

1
3
2
0
0

提示

在第一个测试用例中,只有一对 $(4,7)$ 满足条件:$4 \& 7 = 4$,$4 \oplus 7 = 3$。

在第二个测试用例中,所有的数对都满足条件。

在第三个测试用例中,有两对满足条件:$(6,5)$ 和 $(2,3)$。

在第四个测试用例中,没有满足条件的数对。