4-й этап Республиканской олимпиады по информатике 2019, 9 класс, Актобе


Задача A. Найдите все пары

Ограничение по времени:
1 секунда
Ограничение по памяти:
256 мегабайт

Дано простое $P$, натуральное $n$ и массив $a$ размера $n$. Назовем пару чисел хорошими если их произведение дает такой же остаток при делении на $P$ что и сумма. Более формально, если выполняется условие $x * y$ $mod$ $P = (x + y)$ $mod$ $P$ то пара $(x, y)$ считается хорошей. Найдите количество хороших пар в массиве.
Формат входного файла
В первой строке входного файла заданы два целых числа $n$ $(1 <= n <= 10^5)$ — количество чисел в массиве, $P$ $(2 <= P <= 10^9)$ — заданное простое число $P$. Во второй строке входного файла заданы $n$ чисел $a_i$ $(0 <= a_i <= 10^9)$ - $i$-число в массиве.
Формат выходного файла
Выведите одно целое число - количество хороших пар в массиве.
Система оценки
Данная задача содержит четыре подзадачи:
  1. $1 <= n <= 1000, 2 <= p <= 1000$. Оценивается в $20$ баллов.
  2. $1 <= n <= 1000, p = 2$. Оценивается в $20$ баллов.
  3. $1 <= n <= 100000, 2 <= p <= 1000$. Оценивается в $20$ баллов.
  4. $1 <= n <= 100000, 2 <= p <= 10^9$. Оценивается в $40$ баллов.
Примеры:
Вход
4 3
3 5 12 11
Ответ
2
Вход
3 5
1 2 7
Ответ
1
Замечание
Число называется простым если оно делится только на себя и на единицу. (например: $2, 3, 5, 7, 11, 13, 17, \dots $) Запись $a$ $mod$ $b$ обозначает взятие остатка от деления числа $a$ на $b$. ( Nurdaulet Akhanov )
посмотреть в олимпиаде

Комментарий/решение:

  -3
2019-11-26 20:58:27.0 #

показать/скрыть код

пред. Правка 2   0
2021-02-01 15:58:58.0 #

[deleted.]

пред. Правка 2   0
2021-02-01 15:59:03.0 #

[deleted.]

пред. Правка 2   1
2019-12-23 21:03:05.0 #

  0
2020-04-02 17:48:58.0 #

показать/скрыть код

  1
2021-02-10 13:20:25.0 #

показать/скрыть код

  1
2021-02-26 17:39:25.0 #

показать/скрыть код

AC

  1
2023-09-10 01:56:23.0 #

показать/скрыть код