#T1006. Vector的基本操作

Vector的基本操作

题目描述

给定一个 NN 个数的数组,MM 次操作,每次操作为下列操作之一。求最后的数列。

  • 操作 1:在尾部插入一个数 XX。
  • 操作 2:删除尾部元素。
  • 操作 3:在第 XX 位置插入一个数 YY。
  • 操作 4:删除第 XX 位置的数。
  • 操作 5:删除第 XX 到 YY 位置的数,注意范围的含头不含尾原则,从位置 XX 到位置 YY 表示包含位置 XX 的元素但不包含位置 YY 的元素,类似数学上的左闭右开区间 [X,Y)[X, Y)。
  • 操作 6:获取 Vector 的大小。
  • 操作 7:清空 Vector 的数据。

输入

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

第二行 NN 个整数,表示原来的数组。

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

  • 对于操作 1,接下来一个数 XX。
  • 对于操作 2,删除尾部元素。
  • 对于操作 3,接下来两个数 X,YX, Y,保证 0≤X≤0 \le X \le 当前数的个数,若 X=0X = 0,表示在数组开头插入。
  • 对于操作 4,接下来一个数 XX,保证 1≤X≤1 \le X \le 当前数的个数。
  • 对于操作 5,接下来两个数 X,YX, Y,保证 0≤X≤0 \le X \le 当前数的个数,若 X=0X = 0,表示在数组开头删除。
  • 对于操作 6,输出当前 Vector 的大小,并换行。
  • 对于操作 7,清空当前 Vector。

输出

输出若干个数,表示最后的数组。如果数组为空,不输出。

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