#770. 【基础】链表操作

【基础】链表操作

说明

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

操作1:在第XX个数之后插入一个数YY

操作2:删除第XX个数。

操作3:对区间[XYX,Y]进行排序。

操作4:对区间[XYX,Y]进行翻转。

操作5:删除区间[XYX,Y]中值为ZZ的数。

输入格式

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

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

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

输出格式

输出若干个数,表示最后的数组。

样例

5 5
1 4 3 2 5
3 2 4
4 4 5
5 2 3 2
5 2 3 1
1 0 9
9 1 3 5 4

数据范围

  • 对于操作1,接下来两个数XYX,Y,含义见题面描述,保证0X0≤X≤当前数的个数,若X=0X=0,表示在数组开头插入。
  • 对于操作2,接下来一个数XX,含义见题面描述,保证1X1≤X≤当前数的个数。
  • 对于操作3,接下来两个数XYX,Y,含义见题面描述,保证1XY1≤X≤Y≤当前数的个数,保证操作3不超过10个。
  • 对于操作4,接下来两个数XYX,Y,含义见题面描述,保证1XY1≤X≤Y≤当前数的个数,保证操作4不超过10个。
  • 对于操作5,接下来三个数XYZX,Y,Z,含义见题面描述,保证1XY1≤X≤Y≤当前数的个数,保证操作5不超过10个。