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

Задача . D. Массив с нулевым остатком


Вам задан массив \(a\), состоящий из \(n\) положительных целых чисел.

Изначально у вас есть целое число \(x = 0\). За один ход вы можете совершить одну из следующих двух операций:

  1. Выбрать ровно один индекс \(i\) от \(1\) до \(n\) и увеличить \(a_i\) на \(x\) (\(a_i := a_i + x\)), затем увеличить \(x\) на \(1\) (\(x := x + 1\)).
  2. Просто увеличить \(x\) на \(1\) (\(x := x + 1\)).

Первая операция может быть применена не более одного раза для каждого \(i\) от \(1\) до \(n\).

Ваша задача — найти минимальное количество ходов, необходимое, чтобы получить такой массив, что каждый его элемент без остатка делится на \(k\) (значение \(k\) задано).

Вам нужно ответить на \(t\) независимых наборов тестовых данных.

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

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

Первая строка набора тестовых данных содержит два целых числа \(n\) и \(k\) (\(1 \le n \le 2 \cdot 10^5; 1 \le k \le 10^9\)) — длину массива \(a\) и заданный делитель. Вторая строка набора содержит \(n\) целых чисел \(a_1, a_2, \dots, a_n\) (\(1 \le a_i \le 10^9\)), где \(a_i\)\(i\)-й элемент \(a\).

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

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

Для каждого набора тестовых данных выведите ответ на него — минимальное количество ходов, необходимое, чтобы получить такой массив, что каждый его элемент без остатка делится на \(k\).

Примечание

Рассмотрим первый набор тестовых данных примера:

  1. \(x=0\), \(a = [1, 2, 1, 3]\). Надо просто увеличить \(x\);
  2. \(x=1\), \(a = [1, 2, 1, 3]\). Надо добавить \(x\) ко второму элементу и увеличить \(x\);
  3. \(x=2\), \(a = [1, 3, 1, 3]\). Надо добавить \(x\) к третьему элементу и увеличить \(x\);
  4. \(x=3\), \(a = [1, 3, 3, 3]\). Надо добавить \(x\) к четвертому элементу и увеличить \(x\);
  5. \(x=4\), \(a = [1, 3, 3, 6]\). Надо просто увеличить \(x\);
  6. \(x=5\), \(a = [1, 3, 3, 6]\). Надо добавить \(x\) к первому элементу и увеличить \(x\);
  7. \(x=6\), \(a = [6, 3, 3, 6]\). Мы получили необходимый массив.

Заметьте, что вы не можете добавить \(x\) к одному и тому же элементу больше, чем один раз.


Примеры
Входные данныеВыходные данные
1 5
4 3
1 2 1 3
10 6
8 7 1 8 3 7 5 10 8 9
5 10
20 100 50 20 100500
10 25
24 24 24 24 24 24 24 24 24 24
8 8
1 2 3 4 5 6 7 8
6
18
0
227
8

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

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