#2817. 序列魔幻形

序列魔幻形

题目描述

给定一个 N 个数的序列,M 次操作,每次操作为下列操作之一。求最后的序列。

操作 1:在尾部插入一个数 X。

操作 2:删除尾部元素。

操作 3:在第 X 位置插入一个数 Y。

操作 4:删除第 X 位置的数。

操作 5:删除第 X 到 Y 位置的数,注意范围的含头不含尾原则,从位置 X到位置 Y 表示包含位置 X 的元素但不包含位置 Y 的元素,类似数学上的左闭右开区间 [X, Y)。

操作 6:获取 序列 的大小。

操作 7:清空 序列 的数据。

输入格式

第一行两个整数 N,M( N,M ≤ 100000)含义见试题描述。

第二行 N 个整数,表示原来的序列。

接下来 M 行,每行第一个数 OPT,表示操作类型。

对于操作 1,接下来一个数 X,含义见题面描述。

对于操作 2,删除尾部元素。

对于操作 3,接下来两个数 X,Y,含义见题面描述,保证 0 ≤ X ≤ 当前数的个数,若 X = 0,表示在序列开头插入。

对于操作 4,接下来一个数 X,含义见题面描述,保证 1 ≤ X ≤当前数的个数。

对于操作 5,接下来两个数 X,Y,含义见题面描述,保证 0 ≤ X ≤ 当前数的个数,若 X = 0,表示在数组开头删除。

对于操作 6,输出当前 序列 的大小。

对于操作 7,清空当前 序列。

输出格式

输出若干个数,表示最后的序列。如果序列为空,输出null

5 9
1 7 9 13 5
1 15
2
6
3 0 3
6
3 3 5
6
4 2
1 2
5
6
7
3 1 5 9 13 5 2

数据范围

N,M ≤ 100000