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

Задача . A. Разговоры на эскалаторе


Однажды Владу в метро стало интересно, с кем из пассажиров он может поговорить на эскалаторе. Всего есть \(n\) пассажиров. На эскалаторе всего \(m\) ступенек, все ступеньки пронумерованы от \(1\) до \(m\) и \(i\)-я ступенька имеет высоту \(i \cdot k\).

Влад имеет рост \(H\) сантиметров. Два человека с ростом \(a\) и \(b\) могут поговорить на эскалаторе, если они стоят на разных ступеньках и разница в росте между ними равна разнице высот между ступеньками.

Например, если два человека имеют рост \(170\) и \(180\) сантиметров, и при этом \(m = 10, k = 5\) то они могут встать на ступеньки с номерами \(7\) и \(5\), тогда разница высот между ступеньками равна разнице в росте двух людей: \(k \cdot 2 = 5 \cdot 2 = 10 = 180 - 170\). Есть и другие возможные способы.

Дан массив \(h\) размера \(n\), \(h_i\) означает рост \(i\)-го человека. Владу интересно, со сколькими людьми он может поговорить на эскалаторе по отдельности.

Например, если \(n = 5, m = 3, k = 3, H = 11\), и \(h = [5, 4, 14, 18, 2]\). Влад сможет поговорить с человеком с ростом \(5\) (Влад встанет на ступеньку \(1\), а второй встанет на ступеньку с номером \(3\)) и с человеком с ростом \(14\) (например Влад может встать на ступеньку с номером \(3\), а второй встанет на ступеньку с номером \(2\)). С человеком с ростом \(2\) Влад не сможет поговорить, так как даже если они встанут на крайние ступени эскалатора, разница между ними будет \(6\), а их разница в росте составляет \(9\). С остальными людьми Влад не сможет поговорить на эскалаторе, таким образом, ответ для данного примера: \(2\).

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

В первой строке содержится единственное целое число \(t\) (\(1 \le t \le 1000\)) — количество наборов входных данных.

Далее следуют описания наборов входных данных.

В первой строке каждого набора записаны целые числа: \(n, m, k, H\) (\(1 \le n,m \le 50\), \(1 \le k,H \le 10^6\)). Где \(n\) — количество людей, \(m\) — количество ступенек, \(k\) — разница высот между соседними ступеньками, \(H\) — рост Влада.

Во второй строке записано \(n\) целых чисел: \(h_1, h_2, \ldots, h_n\) (\(1 \le h_i \le 10^6\)). \(h_i\) означает рост \(i\)-го человека.

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

Для каждого набора входных данных выведите одно целое число — количество человек, с которыми Влад сможет поговорить на эскалаторе по отдельности.

Примечание

Первый пример разобран в условии.

Во втором примере Влад сможет поговорить с человеком с ростом \(11\).

В третьем примере Влад сможет поговорить с людьми с ростом: \(44, 74, 98, 62\). Таким образом, ответ \(4\).

В четвертом примере Влад сможет поговорить с человеком с ростом \(73\).


Примеры
Входные данныеВыходные данные
1 7
5 3 3 11
5 4 14 18 2
2 9 5 6
11 9
10 50 3 11
43 44 74 98 62 60 99 4 11 73
4 8 8 49
68 58 82 73
7 1 4 66
18 66 39 83 48 99 79
9 1 1 13
26 23 84 6 60 87 40 41 25
6 13 3 28
30 70 85 13 1 55
2
1
4
1
0
0
3

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

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