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

Задача . D. Делимые пары


У Поликарпа есть два любимых числа \(x\) и \(y\) (они могут быть равны), также он нашёл массив \(a\) длины \(n\).

Поликарп считает пару индексов \(\langle i, j \rangle\) (\(1 \le i < j \le n\)) красивой, если:

  • \(a_i + a_j\) делится нацело на \(x\);
  • \(a_i - a_j\) нацело делится на \(y\).

Например, если \(x=5\), \(y=2\), \(n=6\), \(a=\)[\(1, 2, 7, 4, 9, 6\)], то красивыми являются только пары:

  • \(\langle 1, 5 \rangle\): \(a_1 + a_5 = 1 + 9 = 10\) (\(10\) делится на \(5\)) и \(a_1 - a_5 = 1 - 9 = -8\) (\(-8\) делится на \(2\));
  • \(\langle 4, 6 \rangle\): \(a_4 + a_6 = 4 + 6 = 10\) (\(10\) делится на \(5\)) и \(a_4 - a_6 = 4 - 6 = -2\) (\(-2\) делится на \(2\)).
Найдите количество красивых пар в массиве \(a\).
Входные данные

Первая строка входных данных содержит одно целое число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных. Далее следуют описания наборов.

Первая строка каждого набора содержит три целых числа \(n\), \(x\) и \(y\) (\(2 \le n \le 2 \cdot 10^5\), \(1 \le x, y \le 10^9\)) — размер массива и любимые числа Поликарпа.

Вторая строка каждого набора содержит \(n\) целых чисел \(a_1, a_2, \dots, a_n\) (\(1 \le a_i \le 10^9\)) — элементы массива.

Гарантируется, что сумма \(n\) по всем наборам входных данных не превосходит \(2 \cdot 10^5\).

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

Для каждого набора входных данных выведите единственное число — количество красивых пар в массиве \(a\).


Примеры
Входные данныеВыходные данные
1 7
6 5 2
1 2 7 4 9 6
7 9 5
1 10 15 3 8 12 15
9 4 10
14 10 2 2 11 11 13 5 6
9 5 6
10 7 6 7 9 7 7 10 10
9 6 2
4 9 7 1 2 2 13 3 15
9 2 3
14 6 1 15 12 15 8 2 15
10 5 7
13 3 3 2 12 11 3 7 13 14
2
0
1
3
5
7
0

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

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