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.

 

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

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

 

#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);