#abc273e. [abc273_e]Notebook

[abc273_e]Notebook

问题陈述

我们有一个整数序列 AA 和一个笔记本。笔记本有 10910^9 页。

给定 QQ 个查询。每个查询属于以下四种之一:

ADD xx:将整数 xx 追加到 AA 的尾部。 DELETE:如果 AA 不为空,则删除 AA 的最后一项;否则什么都不做。 SAVE yy:擦除笔记本第 yy 页上记录的序列,并记录当前 AA 到第 yy 页上。 LOAD zz:用笔记本第 zz 页上记录的序列替换 AA

最初,AA 是一个空序列,每个笔记本页都记录了一个空序列。按给定顺序逐个处理 QQ 个查询,并在处理每个查询后打印出 AA 的最后一项。

鉴于输入和输出可能很大,建议使用快速输入和输出方法。

约束条件

  • 1Q5×1051 \leq Q \leq 5 \times 10^5
  • 1x,y,z1091 \leq x, y, z \leq 10^9
  • QQxxyyzz 均为整数。
  • 所给查询均属于问题陈述中的四种类型之一。

输入

输入以以下格式从标准输入给出:

QQ query1\mathrm{query}_1 query2\mathrm{query}_2 \vdots queryQ\mathrm{query}_Q

输出

对于每个 i=1,2,,Qi = 1, 2, \ldots, Q,设 XiX_i 是处理到第 ii 个查询后 AA 的最后一个元素,如果 AA 为空则令 Xi:=1X_i := -1,并以以下格式打印出它们:

X1X_1 X2X_2 \ldots XQX_Q


示例输入 1

11
ADD 3
SAVE 1
ADD 4
SAVE 2
LOAD 1
DELETE
DELETE
LOAD 2
SAVE 1
LOAD 3
LOAD 1

示例输出 1

3 3 4 4 3 -1 -1 4 4 -1 4

最初,AA 是一个空序列,因此 A=()A = (),并且笔记本的每一页都记录了一个空序列。

  • 第一个查询将 33 追加到 AA 的尾部,结果是 A=(3)A = (3)
  • 第二个查询,笔记本的第一页的序列变为 (3)(3)。此时 A=(3)A = (3)
  • 第三个查询将 44 追加到 AA 的尾部,结果是 A=(3,4)A = (3, 4)
  • 第四个查询,笔记本的第二页的序列变为 (3,4)(3, 4)。此时 A=(3,4)A = (3, 4)
  • 第五个查询,AA 被替换为笔记本第一页记录的 (3)(3),结果是 A=(3)A = (3)
  • 第六个查询,删除了 AA 的最后一项,结果是 A=()A = ()
  • 第七个查询,由于 AA 已经为空,什么也不发生。此时 A=()A = ()
  • 第八个查询,AA 被替换为笔记本第二页记录的 (3,4)(3,4),结果是 A=(3,4)A = (3, 4)
  • 第九个查询,笔记本的第一页的序列变为 (3,4)(3, 4)。此时 A=(3,4)A = (3, 4)
  • 第十个查询,AA 被替换为笔记本第三页记录的 ()(),结果是 A=()A = ()
  • 第十一个查询,AA 被替换为笔记本第一页记录的 (3,4)(3, 4),结果是 A=(3,4)A = (3, 4)

示例输入 2

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

示例输出 2

4 3 4 10 -1 -1 -1 4 4 5 5 2 5 1 1 7 8 7 4 7 1