题目描述
乔乔有许多的棒棒糖,每一根棒棒糖都有一个唯一的编号,编号为 1 到 107 中的正整数。
乔乔有一个长长的架子,用来存放棒棒糖,棒棒糖可以插在架子上的任何位置。
乔乔每次会选择以下操作之一进行:
1、乔乔把一根全新的棒棒糖插到架子上,乔乔会指定架子上已有的一根棒棒糖,让你把它插在这根棒棒糖的右边,或让你把这根棒棒糖插到架子最左边。
2、乔乔从架子上拔下一根棒棒糖
3、乔乔想知道编号为x的棒棒糖在不在架子上
4、乔乔有时候会想知道,架子上有几根棒棒糖,她需要清点一下这些棒棒糖
5、乔乔想知道架子上依次都插了哪些棒棒糖,从左到右把棒棒糖的编号抄下来
6、乔乔想知道某一根棒棒糖的右边一根棒棒糖的编号(保证被指定的这根棒棒糖在架子上)
7、乔乔和她的好朋友一起把架子上所有的棒棒糖都吃掉
8、乔乔把架子旋转180度,架子上所有棒棒糖的左右顺序都被反转了
乔乔还要忙着去吃棒棒糖,这么简单的任务当然就交给你来完成啦!
输入格式
从标准输入读入数据。
第一行输入一个整数 m ,表示操作的总数。
接下来 m 行,每行若干个整数,表示一个操作。
每行第 1 个整数表示这次进行的是第几种操作,每种操作格式如下:
1 x y 将将编号为 x 的棒棒糖插到编号为 y 的棒棒糖的右边。特别地,如果 y=0 ,将 x 插到架子的最左边。
2 x 将编号为 x 的棒棒糖从架子上拔下。
3 x 乔乔想知道编号为 x 的棒棒糖在不在架子上,请你输出一个整数, 1 表示在,0 表示不在。
4 乔乔想知道架子上有几根棒棒糖,请你输出一个整数,表示架子上棒棒糖的数目。
5 乔乔想知道架子上有哪些棒棒糖,请你按照从左到右的顺序依次输出架子上所有的棒棒糖的编号,相邻两个数字之间用一个空格隔开。
6 x 乔乔想知道编号为 x 的棒棒糖右边的棒棒糖编号是多少,特别地 x=0 表示她想知道最左边的棒棒糖编号是多少。(如果 x 是最右边的棒棒糖,输出 0。)
7 乔乔和她的好朋友把架子上所有的棒棒糖都吃掉。
8 乔乔把架子旋转180度。
输出格式
输出到标准输出。
对于第3、4、5、6个操作,输出一行表示答案。
样例1输入
10
1 1 0
1 2 1
8
1 3 1
8
4
6 1
8
6 1
5
样例1输出
3
2
3
2 1 3
subtask
对于 60% 的数据,不包含操作8;
对于 100% 的数据,m≤106 , 棒棒糖的编号在 107 以内。
在所有数据中均匀分布着一半的数据,满足 m≤1000。
操作 5 的次数不超过 10 。
提示
允许并鼓励使用标准库中的相关内容(如std::list)。