eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

XOR Сумма

XOR Сумма

Вам дан список из q (1q100000) команд.

По команде "insert n" следует добавить n в набор чисел (повторы чисел допускаются).

По команде "print" следует вывести XOR сумму наибольших k (1kq) элементов списка (если список содержит меньше k элементов, то вывести XOR сумму всех элементов списка).

XOR сумма набора чисел представляет собой выполнение операции XOR над ими всеми. XOR применяется к двум целым числам, используя оператор ^ во многих языках программирования или xor в Хаскеле (Паскале)).

Функция XOR имеет несколько важных свойств. Например, если n ^ m = x, то n = x ^ m и m = x ^ n.

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

Первая строка содержит количество тестов t (1t30). Каждый тест начинается строкой, содержащей два целых числа q и k (1q, k100000). Каждая из следующих q строк содержит одну команду.

Команды бывают двух видов:

insert n

или

print

n - неотрицательное число, меньшее 231.

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

Для каждой команды print вывести XOR сумму (не больше) k наибольших элементов в текущем списке. Помните, что список очищается после обработки каждого теста.

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
1
5 2
insert 1
insert 2
print
insert 3
print
Выходные данные #1
3
1
Автор Hichem Zakaria Aichour
Источник ACM ICPC CCPC 2013