#AT2345. E - Notebook
E - Notebook
当前没有测试数据。
E - Notebook
Score : $500$ points
Problem Statement
We have an integer sequence $A$ and a notebook. The notebook has $10^9$ pages.
You are given $Q$ queries. Each query is of one of the following four kinds:
ADD : append an integer to the tail of .
DELETE: remove the last term of $A$ if $A$ is not empty; do nothing otherwise.
SAVE $y$: erase the sequence recorded on the $y$-th page of the notebook, and record the current $A$ onto the $y$-th page.
LOAD $z$: replace $A$ with the sequence recorded on the $z$-th page of the notebook.
Initially, $A$ is an empty sequence, and an empty sequence is recorded on each page of the notebook. Process $Q$ queries successively in the given order and print the last term of $A$ after processing each query.
The use of fast input and output methods is recommended because of potentially large input and output.
Constraints
- $1 \leq Q \leq 5 \times 10^5$
- $1 \leq x, y, z \leq 10^9$
- $Q$, $x$, $y$, and $z$ are integers.
- Each of the given queries is of one of the four kinds in the Problem Statement.
Input
The input is given from Standard Input in the following format:
``` $Q$ $\mathrm{query}_1$ $\mathrm{query}_2$ $\vdots$ $\mathrm{query}_Q$ ```Output
For each $i = 1, 2, \ldots, Q$, let $X_i$ be the last element of $A$ after processing up to the $i$-th query, or let $X_i := -1$ if $A$ is empty, and print them in the following format:
``` $X_1$ $X_2$ $\ldots$ $X_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
Initially, $A$ is an empty sequence, so $A = ()$, and an empty sequence is recorded on each page of the notebook.
- By the $1$-st query, $3$ is appended to the tail of $A$, resulting in $A = (3)$.
- By the $2$-nd query, the sequence recorded on the $1$-st page of the notebook becomes $(3)$. It remains that $A = (3)$.
- By the $3$-rd query, $4$ is appended to the tail of $A$, resulting in $A = (3, 4)$.
- By the $4$-th query, the sequence recorded on the $2$-nd page of the notebook becomes $(3, 4)$. It remains that $A = (3, 4)$.
- By the $5$-th query, $A$ is replaced by $(3)$, which is recorded on the $1$-st page of the notebook, resulting in $A = (3)$.
- By the $6$-th query, the last term of $A$ is removed, resulting in $A = ()$.
- By the $7$-th query, nothing happens because $A$ is already empty. It remains that $A = ()$.
- By the $8$-th query, $A$ is replaced by $(3,4)$, which is recorded on the $2$-nd page of the notebook, resulting in $A = (3, 4)$.
- By the $9$-th query, the sequence recorded on the $1$-st page of the notebook becomes $(3, 4)$. It remains that $A = (3, 4)$.
- By the $10$-th query, $A$ is replaced by $()$, which is recorded on the $3$-rd page of the notebook, resulting in $A = ()$.
- By the $11$-th query, $A$ is replaced by $(3, 4)$, which is recorded on the $1$-st page of the notebook, resulting in $A = (3, 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