神奇的JM最近沉迷玩俄罗斯套娃不能自拔,于是他灵机一动,想搞一个俄罗斯套娃数组,但他的电脑昨天被寒域爷浇了一罐肥宅快乐水,现在还在抢修中,所以他万不得已只能找你帮忙了。
俄罗斯套娃数组的定义如下(下面简称为套娃数组):
-
套娃数组是一个不定长数组,初始为空。数组的下标为 ,其中 为数组长度。
-
套娃数组中的元素可以是正整数,也可以是一个套娃数组。
-
套娃数组允许在任意位置插入和删除一个元素;如果插入的元素是一个套娃数组,则插入的肯定是一个空的数组;如果删除的元素是一个套娃数组,则该数组内部的所有元素都将被一并删除,不留痕迹。
-
此外,我们有一个唯一的光标,光标会指向一个套娃数组,初始时指向最外层的套娃数组。
作为一个dalao,qz是非常严谨的,他会用一些输入的操作来检测你帮JM实现的俄罗斯套娃数组是否正确。有四种操作:
1 p v
:表示在当前所指的数组的下标p
的后面插入元素。如果 ,则表示插入到数组的最前面。如果当前数组为空,则保证 。如果 ,则表示插入一个空的套娃数组,否则表示插入一个正整数v
。
2 p
:表示删除当前所指的数组在下标p
处的元素。
3 p
:表示将光标指向当前所指的数组在下标p
处的数组,即改变光标所指的数组。如果下标p
处是一个正整数,则不做任何事,光标不变。如果 ,则将光标退回到上级数组。如果当前已经指向最外层,则不做任何事,光标不变。
4
:输出当前所指的数组中的所有元素,具体输出格式参考下面的样例。注意,如果元素是一个套娃数组,则只输出一个[]
,不递归输出里面嵌套的内容。
保证输入的所有操作都是合法的,即保证:
-
对于操作1有 且 。
-
对于操作2有 。
-
对于操作3有 。
-
不会出现 以外的操作。