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