| Codeforces Round 1124 (Div. 1) |
|---|
| Закончено |
В городе SauSaGe существует $$$n$$$ различных вкусов сосисок. Рейхане, королева города SauSaGe, хранит на королевском складе $$$a_i$$$ ($$$a_i \lt 16$$$) сосисок вкуса $$$i$$$.
Со временем содержимое королевского склада претерпевает $$$q$$$ изменений. Каждое изменение задаётся в виде $$$(p, x)$$$ и означает, что количество сосисок вкуса $$$p$$$ на складе становится равным $$$x$$$ (то есть $$$a_p := x$$$).
Рейхане может любое количество раз (возможно, ноль) выполнить над сосисками следующую операцию:
В городе SauSaGe вкус сосисок называют мясным, если их количество делится на $$$3$$$. Три знаменитых критика сосисок — Шафи, Шафаги и Гаффари — любят только мясные вкусы.
До обработки каких-либо изменений, а также после каждого из $$$q$$$ изменений необходимо ответить на следующий вопрос: если Рейхане выполнит произвольное количество операций оптимальным образом, какое максимальное количество вкусов сосисок понравится трём критикам?
Примечание: Операции, выполняемые для поиска ответа для каждого состояния, являются гипотетическими и не влияют на массив для последующих запросов. Однако $$$q$$$ изменений содержимого склада ($$$a_p := x$$$) являются постоянными.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$q$$$ ($$$2 \leq n \leq 2 \cdot 10^5$$$, $$$0 \leq q \leq 2 \cdot 10^5$$$) — количество вкусов сосисок и количество изменений соответственно.
Вторая строка содержит $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$0 \leq a_i \lt 16$$$) — начальные количества сосисок каждого вкуса.
Далее следуют $$$q$$$ строк, каждая из которых содержит два целых числа $$$p$$$ и $$$x$$$ ($$$1 \leq p \leq n$$$, $$$0 \leq x \lt 16$$$) и означает, что $$$a_p$$$ заменяется на $$$x$$$.
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$2\cdot 10^5$$$.
Гарантируется, что сумма значений $$$q$$$ по всем наборам входных данных не превосходит $$$2\cdot 10^5$$$.
Для каждого тестового случая выведите $$$q + 1$$$ целых чисел. Первое число обозначает ответ для исходного массива. Следующие $$$q$$$ чисел обозначают ответы после каждого обновления.
32 110 31 03 315 1 53 01 102 04 01 2 3 4
2 22 2 2 31
В первом наборе входных данных исходный массив имеет вид $$$[10, 3]$$$. Выбрав $$$i = 1$$$ и $$$k = 1$$$ (то есть применив исключающее ИЛИ с $$$3$$$), получим $$$[10 \oplus 3, 3 \oplus 3] = [9, 0]$$$, причём и $$$9$$$, и $$$0$$$ делятся на $$$3$$$. После изменения массив принимает вид $$$[0, 3]$$$, где оба элемента уже делятся на $$$3$$$, поэтому ответ в обоих состояниях равен $$$2$$$.
Во втором наборе входных данных исходный массив имеет вид $$$[15, 1, 5]$$$. Выбрав $$$i = 2$$$ и $$$k = 3$$$ (исключающее ИЛИ с $$$9$$$), получим $$$[15, 1 \oplus 9, 5 \oplus 9] = [15, 8, 12]$$$, причём $$$15$$$ и $$$12$$$ делятся на $$$3$$$, поэтому ответ равен $$$2$$$.
После первого изменения массив имеет вид $$$[15, 1, 0]$$$. Снова два элемента ($$$15$$$ и $$$0$$$) делятся на $$$3$$$, поэтому ответ равен $$$2$$$.
После второго изменения массив имеет вид $$$[10, 1, 0]$$$. Выбрав $$$i = 1$$$ и $$$k = 3$$$ (исключающее ИЛИ с $$$9$$$), получим $$$[10 \oplus 9, 1 \oplus 9, 0] = [3, 8, 0]$$$, где $$$3$$$ и $$$0$$$ делятся на $$$3$$$, поэтому ответ остаётся равен $$$2$$$.
| Название |
|---|


