#P1470. 动态记录本

动态记录本

题目描述

初始有一个空整数序列,下标从 0 开始。处理 QQ 条命令:

命令 意义
1 x 末尾追加 xx
2 删除末尾元素;若为空则不操作
3 p x 把下标 pp 的元素改成 xx
4 p x 在下标 pp 之前插入 xx;pp 等于长度表示末尾插入
5 p 删除下标 pp 的元素
6 n x 将长度改成 nn;扩展时新增元素填 xx,缩短时删除末尾多余元素
7 清空序列
8 输出当前长度,再依次输出所有元素,同一行用空格分隔

输入格式

第一行 QQ,随后 QQ 行命令。

输出格式

仅命令 8 产生输出。空序列输出一行 0。

数据范围

1≤Q≤20001 \le Q \le 2000;所有写入值 xx 满足 −109≤x≤109-10^{9} \le x \le 10^{9};任意时刻长度不超过 20002000;命令 6 n x 中 0≤n≤20000 \le n \le 2000。命令 3 p x、5 p 保证 0≤p<当前长度0 \le p < \text{当前长度},命令 4 p x 保证 0≤p≤当前长度0 \le p \le \text{当前长度}。保证至少一条命令 8。

输入输出样例

样例 1

1
8
0

样例 2

6
2
8
1 3
7
2
8
0
0

样例 3

7
4 0 5
4 0 2
4 2 9
8
5 0
5 1
8
3 2 5 9
1 5

样例 4

6
1 -1000000000
1 0
1 1000000000
3 0 1000000000
3 2 -1000000000
8
3 1000000000 0 -1000000000

样例 5

8
6 3 7
8
6 1 9
8
6 4 2
8
6 0 1
8
3 7 7 7
1 7
4 7 2 2 2
0

样例 6

5
6 5 4
5 1
5 1
6 3 99
8
3 4 4 4

样例 7

11
1 5
4 0 3
3 1 8
6 4 -2
8
2
5 0
8
7
1 0
8
4 3 8 -2 -2
2 8 -2
1 0