Problem4615--链表的基本操作 II

4615: 链表的基本操作 II

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

给定一个 $N$ 个数的链表,$M$ 次操作,每次操作为下列操作之一。求最后的数组。
操作 $1$:在第 $X$ 个数之后插入一个数 $Y$。
操作 $2$:删除第 $X$ 个数。
操作 $3$:对区间 $[X,\ Y]$ 进行排序。
操作 $4$:对区间 $[X,\ Y]$ 进行翻转。
操作 $5$:删除区间 $[X,\ Y]$ 中值为 $Z$ 的数。

Input

第一行两个整数 $N,\ M\ (N,\ M≤100,000)$ 含义见试题描述。
第二行 $N$ 个整数,表示原来的数组。
接下来 $M$ 行,每行第一个数 $OPT$,表示操作类型。
对于操作 $1$,接下来两个数 $X,\ Y$,含义见题面描述,保证 $0≤X≤$当前数的个数,若 $X=0$,表示在数组开头插入。
对于操作 $2$,接下来一个数 $X$,含义见题面描述,保证 $1≤X≤$当前数的个数。
对于操作 $3$,接下来两个数 $X,\ Y$,含义见题面描述,保证 $1≤X≤Y≤$ 当前数的个数,保证操作 $3$ 不超过 $10$ 个。
对于操作 $4$,接下来两个数 $X,\ Y$,含义见题面描述,保证 $1≤X≤Y≤$ 当前数的个数,保证操作 $4$ 不超过 $10$ 个。
对于操作 $5$,接下来三个数 $X,\ Y,\ Z$,含义见题面描述,保证 $1≤X≤Y≤$ 当前数的个数,保证操作 $5$ 不超过 $10$ 个。

Output

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

Sample 1 Input

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

Sample 1 Output

9 1 3 5 4

Source/Category

数据结构 2.1.链表