11935. Блокнот
Маємо цілу послідовність \(А\) і блокнот. У блокноті \(10^9\) сторінки.
Вам надаються \(Q\) запитів. Кожен запит належить до одного з наступних чотирьох типів:
ADD \(x\): додати ціле число \(x\) в кінець \(A\).
DELETE: видалити останній член \(A\), якщо \(A\) не порожній; інакше нічого не робити.
SAVE \(y\): стерти послідовність, записану на \(y\)-й сторінці блокнота, і записати поточний \(A\) на \(y\)-й сторінці.
LOAD \(z\): замінити \(А\) послідовністю, записаною на \(z\)-й сторінці блокнота.
Спочатку \(А\) є порожньою послідовністю, і порожня послідовність записана на кожній сторінці блокнота. Послідовно обробляйте запити у заданому порядку та виводіть останній член \(A\) після обробки кожного запиту.
Рекомендується використовувати швидкі методи введення та виведення через потенційно великі введення та виведення.
Обмеження
- \(1 \leq Q \leq 5 \times 10^5\)
- \(1 \leq x, y, z \leq 10^9\)
- \(Q\), \(x\), \(y\) і \(z\) — цілі числа.
- Кожен із поданих запитів належить до одного з чотирьох типів у постановці задачі.
Формат вхідних даних
Перший рядок містить ціле число \(Q\)
Наступні \(Q\) рядків містять запити.
Формат вихідних даних
У вихідний потік виведіть \(Q\) чисел розділяючи їх пропуском - відповіді на відповідні запити.
Приклад вхідних даних
11
ADD 3
SAVE 1
ADD 4
SAVE 2
LOAD 1
DELETE
DELETE
LOAD 2
SAVE 1
LOAD 3
LOAD 1
Приклад вихідних даних
3 3 4 4 3 -1 -1 4 4 -1 4
Приклад вхідних даних
21
ADD 4
ADD 3
DELETE
ADD 10
LOAD 7
SAVE 5
SAVE 5
ADD 4
ADD 4
ADD 5
SAVE 5
ADD 2
DELETE
ADD 1
SAVE 5
ADD 7
ADD 8
DELETE
ADD 4
DELETE
LOAD 5
Приклад вихідних даних
4 3 4 10 -1 -1 -1 4 4 5 5 2 5 1 1 7 8 7 4 7 1
Коментарі