Олимпиадный тренинг

Задача . B. Камень и рычаг


«Плотину надо поднять. Рычагом. Я его дам.

Канал нужно завалить. Камнем. Камень я не дам.»

Данику срочно нужны рычаг и камень! Естественно, проще всего достать их у Ящера-Отшельника.

Ящер дал Данику рычаг просто так, а вот для того, чтобы получить камень, Даник должен был решить следующую задачу:

Дано целое положительное число \(n\), а также массив \(a\), содержащий целые положительные числа. Необходимо найти количество пар индексов \((i,j)\) таких, что \(i<j\) и \(a_i\) \(\&\) \(a_j \ge a_i \oplus a_j\), где \(\&\) обозначает операцию побитового И, в то время как \(\oplus\) обозначает операцию побитового исключающего ИЛИ.

Даник решил эту задачу. А сможете ли вы?

Входные данные

Каждый тест содержит несколько наборов входных данных.

В первой строке находится одно целое положительное число \(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\).

Выходные данные

Для каждого набора входных данных выведите одно целое неотрицательное число — ответ на задачу.

Примечание

В первом наборе входных данных подходит только одна пара чисел: \((4,7)\): для нее \(4\) \(\&\) \(7 = 4\), а \(4 \oplus 7 = 3\).

Во втором наборе входных данных подходит любая пара чисел.

В третьем наборе входных данных подходят две пары чисел: \((6,5)\) и \((2,3)\).

В четвертом наборе входных данных нет подходящих пар.


Примеры
Входные данныеВыходные данные
1 5
5
1 4 3 7 10
3
1 1 1
4
6 2 5 3
2
2 4
1
1
1
3
2
0
0

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя