atcoder#ABC273E. [ABC273E] Notebook
[ABC273E] Notebook
题目描述
整数列 とノートがあります。ノートには 枚のページがあります。
個のクエリが与えられます。各クエリは下記の 種類のいずれかです。
ADD : 整数 を の末尾に追加する。
DELETE : の末尾の要素を削除する。ただし、 が空である場合は何もしない。
SAVE : ノートの ページ目に書かれている数列を消し、代わりに現在の を ページ目に書き込む。
LOAD : をノートの ページ目に書かれている数列で置き換える。
はじめ、 は空列であり、ノートのすべてのページには空列の情報が書かれています。 その初期状態から、 個のクエリを与えられる順に実行し、各クエリの実行直後における の末尾の要素を出力してください。
なお、入出力の量が多くなる場合があるので、高速な方法で入出力を行うことを推奨します。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
下記の形式にしたがい、 について、 番目までのクエリを実行した直後の の末尾の要素 を( が空の場合は とする)出力せよ。
题目大意
有一个版本保存系统,共有 个版本,每个版本初始都为空列表,还需要维护一个列表(后称为“当前列表”)。
您需要实现如下四种操作:
ADD x
:在当前列表的末尾添加DELETE
:如果当前列表非空,把当前列表的末尾最后一个数删除。否则,什么也不做。SAVE x
:把当前列表保存至第 版本(在此后完成的操作不会在第 版本中出现,而且保存后当前列表不清空)LOAD x
:把当前列表变成第 版本(直接赋值,而不是添加,而且保存后第 版本不清空)
给定 次操作,每次操作是以上四种操作,求每次操作后的当前列表的末尾最后一个数(若数组为空输出 )。
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
提示
制約
- は整数
- 与えられるクエリは問題文中の 種類のいずれか
Sample Explanation 1
はじめ、 は空列、すなわち であり、ノートのすべてのページには空列の情報が書かれています。 - 番目のクエリによって、 の末尾に が追加され、 となります。 - 番目のクエリによって、ノートの ページ目に書かれた数列が になります。 は変わらず です。 - 番目のクエリによって、 の末尾に が追加され、 となります。 - 番目のクエリによって、ノートの ページ目に書かれた数列が になります。 は変わらず です。 - 番目のクエリによって、 がノートの ページ目に書かれた数列 で置き換えられ、 となります。 - 番目のクエリによって、 の末尾の要素が削除され、 となります。 - 番目のクエリでは、 がすでに空であるので何もしません。 は変わらず です。 - 番目のクエリによって、 がノートの ページ目に書かれた数列 で置き換えられ、 となります。 - 番目のクエリによって、ノートの ページ目に書かれた数列が になります。 は変わらず です。 - 番目のクエリによって、 がノートの ページ目に書かれた数列 で置き換えられ、 となります。 - 番目のクエリによって、 がノートの ページ目に書かれた数列 で置き換えられ、 となります。