410764: GYM104099 2 Праздничная делимость

Memory Limit:0 MB Time Limit:0 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

2. Праздничная делимостьограничение по времени на тест2 секундыограничение по памяти на тест256 мегабайтвводстандартный вводвыводстандартный вывод

Недавно Даниил участвовал в командной олимпиаде. В почетном дипломе третьей степени он обнаружил массив $$$a$$$, состоящий из $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$, а также число $$$k$$$.

После этого он решил поиграть с обнаруженным массивом. Для этого мальчик $$$q$$$ раз изменяет некоторый элемент массива. Каждое изменение характеризуется двумя числами $$$x$$$ и $$$y$$$, которые означают, что Даниил заменяет элемент массива на позиции $$$x$$$ (который раньше был равен $$$a_x$$$) на число $$$y$$$.

После каждого изменения Даниил хочет посчитать количество таких пар $$$(l, r)$$$, что $$$1 \le l < r \le n$$$ и сумма $$$(a_l + a_r)$$$ делится на $$$k$$$ без остатка. Сейчас мальчик празднует по поводу получения диплома, поэтому не способен решить эту задачу сам.

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

Первая строка содержит три целых числа $$$n$$$, $$$q$$$ и $$$k$$$ ($$$1 \le n, q \le 100\,000$$$, $$$1 \le k \le 10^9$$$) — размер массива, количество изменений, а также число $$$k$$$ из условия задачи.

Вторая строка содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le 10^9$$$) — элементы массива $$$a$$$.

Каждая из следующих $$$q$$$ строк содержит два целых числа $$$x_i$$$ и $$$y_i$$$ ($$$1 \le x_i \le n$$$, $$$1 \le y_i \le 10^9$$$) — описание очередного изменения, произведенного Даниилом. После этого изменения число, находящееся на позиции $$$x_i$$$ в массиве заменяется на число $$$y_i$$$.

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

Выведите $$$q$$$ строк. В $$$i$$$-й строке выведите одно целое число — количество пар чисел $$$(l, r)$$$, таких что $$$1 \le l < r \le n$$$ и $$$(a_l + a_r)$$$ делится на $$$k$$$ без остатка, после применения первых $$$i$$$ операций.

Система оценки

Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.

ПодзадачаБаллыОграничения Необходимые подзадачи Информация о проверке
00Тесты из условияполная
110$$$n \le 100$$$, $$$q \le 100$$$первая ошибка
220$$$n \le 5\,000$$$, $$$q \le 5\,000$$$1первая ошибка
320$$$q \le 1\,000$$$, $$$k \le 1\,000$$$первая ошибка
412$$$k \le 100\,000$$$3первая ошибка
538Нет дополнительных ограничений1 — 4первая ошибка
ПримерВходные данные
5 3 3
1 2 3 4 5
1 3
3 1
2 5
Выходные данные
3
4
4
Примечание

В изначальном массиве из примера подходящими парами $$$(l, r)$$$ являются $$$(1, 2)$$$: $$$1 + 2 = 3$$$, $$$(1, 5)$$$: $$$1 + 5 = 6$$$, $$$(2, 4)$$$: $$$2 + 4 = 6$$$ и $$$(4, 5)$$$: $$$4 + 5 = 9$$$

После первого изменения массив выглядит следующим образом: $$$3, 2, 3, 4, 5$$$. Подходящими парами в нём являются $$$(1, 3)$$$: $$$3 + 3 = 6$$$, $$$(2, 4)$$$: $$$2 + 4 = 6$$$ и $$$(4, 5)$$$: $$$4 + 5 = 9$$$

После второго изменения массив выглядит следующим образом: $$$3, 2, 1, 4, 5$$$. Подходящими парами в нём являются $$$(2, 3)$$$: $$$2 + 1 = 3$$$, $$$(2, 4)$$$: $$$2 + 4 = 6$$$, $$$(3, 5)$$$: $$$1 + 5 = 6$$$ и $$$(4, 5)$$$: $$$4 + 5 = 9$$$.

После третьего изменения массив выглядит следующим образом: $$$3, 5, 1, 4, 5$$$. Набор подходящих пар не изменится.

加入题单

算法标签: