B. Персистентная очередь
2000 мс · 256 МБ · всё или ничего
Очередь хранит список чисел: push(x) добавляет в конец, pop забирает и возвращает первое число. В персистентной версии каждая операция берёт номер версии: push(v, x) и pop(v) строят новую версию из версии , а сама версия остаётся прежней. Изначально очередь пуста и имеет версию ноль; -я операция создаёт версию .
Выведите результаты всех операций pop.
Формат ввода
В первой строке — число операций (). Далее строк: 1 v x — добавить в конец версии ; -1 v — забрать первое число версии . Числа помещаются в 32-битный знаковый тип; pop к пустой очереди не применяется.
Формат вывода
Для каждой операции pop выведите извлечённое число.
Примеры
ввод
10 1 0 1 1 1 2 1 2 3 1 2 4 -1 3 -1 5 -1 6 -1 4 -1 8 -1 9
вывод
1 2 3 1 2 4
ввод
2 1 0 -2000000000 -1 1
вывод
-2000000000
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.