11935. Блокнот


Відправити розв'язок

Бали: 100
Time limit: 3.0s
Memory limit: 500M

Author:
Problem type
Allowed languages
C++, Java, Pascal, Python

Маємо цілу послідовність \(А\) і блокнот. У блокноті \(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

Коментарі

Ще немає коментарів.