8548. Делимость сумм пар

 

Задан массив целых чисел A = (a0, a1, ..., an-1) и натуральное число k. Найдите и выведите количество пар (i, j) где i < j и ai + aj делится на k.

 

Вход. Первая строка содержит целые числа n (2 ≤ n, k ≤ 100) и k. Вторая строка содержит n целых чисел – содержимое массива A = (a0, a1, ..., an-1) (1 ≤ ai ≤ 100).

 

Выход. Выведите количество пар (i, j) где i < j и ai + aj делится на k.

 

Пример входа

Пример выхода

6 3

1 3 2 6 1 2

5

 

 

РЕШЕНИЕ

массивы

 

Анализ алгоритма

Прочитаем входную последовательность чисел в массив.

Положим res = 0. Далее перебираем пары (i, j) где i < j. Если ai + aj делится на k, то увеличиваем res на 1.

 

Реализация алгоритма

Объявим рабочий массив.

 

#define MAX 101

int m[MAX];

 

Читаем входные данные.

 

scanf("%d %d", &n, &k);

for (i = 0; i < n; i++)

  scanf("%d", &m[i]);

 

В переменной res подсчитываем количество искомых пар.

 

res = 0;

 

Перебираем пары (i, j) где i < j. Если ai + aj делится на k, то увеличиваем res на 1.

 

for (i = 0; i < n; i++)

for (j = i + 1; j < n; j++)

  if ((m[i] + m[j]) % k == 0) res++;

 

Выводим ответ.

 

printf("%d\n", res);