C. Исключающее или на отрезке
1000 мс · 256 МБ · всё или ничего
То же, что задача C в классе, только вместо суммы - побитовое исключающее или.
Всё, что нужно от операции для корневой, - ассоциативность и возможность слить два куска. У xor это есть, так что схема не меняется: в каждом блоке храним xor его элементов, запрос собираем из огрызков и целых блоков.
Формат ввода
В первой строке - числа и ().
Во второй - чисел от 0 до .
Далее строк. «1 i x» - присвоить (). «2 l r» - исключающее или на отрезке .
Формат вывода
На каждый запрос второго типа выведите результат в отдельной строке.
Примеры
ввод
5 3 1 2 3 4 5 2 1 5 1 3 0 2 1 5
вывод
1 2
ввод
4 2 1073741823 0 1073741823 5 2 1 3 2 1 4
вывод
0 5
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.