#1018. 1-01E. JM的俄罗斯套娃

内存限制:512 MiB 时间限制:1500 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: JM233333

题目描述

神奇的JM最近沉迷玩俄罗斯套娃不能自拔,于是他灵机一动,想搞一个俄罗斯套娃数组,但他的电脑昨天被寒域爷浇了一罐肥宅快乐水,现在还在抢修中,所以他万不得已只能找你帮忙了。

俄罗斯套娃数组的定义如下(下面简称为套娃数组):

  1. 套娃数组是一个不定长数组,初始为空。数组的下标为 ,其中 为数组长度。

  2. 套娃数组中的元素可以是正整数,也可以是一个套娃数组。

  3. 套娃数组允许在任意位置插入和删除一个元素;如果插入的元素是一个套娃数组,则插入的肯定是一个空的数组;如果删除的元素是一个套娃数组,则该数组内部的所有元素都将被一并删除,不留痕迹。

  4. 此外,我们有一个唯一的光标,光标会指向一个套娃数组,初始时指向最外层的套娃数组。

作为一个dalao,qz是非常严谨的,他会用一些输入的操作来检测你帮JM实现的俄罗斯套娃数组是否正确。有四种操作:

1 p v:表示在当前所指的数组的下标p后面插入元素。如果 ,则表示插入到数组的最前面。如果当前数组为空,则保证 。如果 ,则表示插入一个空的套娃数组,否则表示插入一个正整数v

2 p:表示删除当前所指的数组在下标p处的元素。

3 p:表示将光标指向当前所指的数组在下标p处的数组,即改变光标所指的数组。如果下标p处是一个正整数,则不做任何事,光标不变。如果 ,则将光标退回到上级数组。如果当前已经指向最外层,则不做任何事,光标不变。

4:输出当前所指的数组中的所有元素,具体输出格式参考下面的样例。注意,如果元素是一个套娃数组,则只输出一个[],不递归输出里面嵌套的内容。

保证输入的所有操作都是合法的,即保证:

  1. 对于操作1有

  2. 对于操作2有

  3. 对于操作3有

  4. 不会出现 以外的操作。

输入格式

第一行一个正整数 ,表示有 次操作。

接下来 行,每行表示一个操作,输入格式如前文中题目所述。

输出格式

对于每次操作4,输出一行,表示当前所指的数组。

样例

样例输入

12
1 0 1
1 0 2
1 1 0
4
2 3
4
3 2
4
1 0 6
4
3 0
4

样例输出

{2 [] 1}
{2 []}
{}
{6}
{2 []}

数据范围与提示

,除了插入一个套娃数组时