EduBrick

B. Персистентная очередь

2000 мс · 256 МБ · всё или ничего

Очередь хранит список чисел: push(x) добавляет xx в конец, pop забирает и возвращает первое число. В персистентной версии каждая операция берёт номер версии: push(v, x) и pop(v) строят новую версию из версии vv, а сама версия vv остаётся прежней. Изначально очередь пуста и имеет версию ноль; ii-я операция создаёт версию ii.

Выведите результаты всех операций pop.

Формат ввода

В первой строке — число операций nn (1≤n≤2⋅1051 \le n \le 2 \cdot 10^5). Далее nn строк: 1 v x — добавить xx в конец версии vv; -1 v — забрать первое число версии vv. Числа помещаются в 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
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.