A. 数组操作(array)

内存限制:256 MiB 时间限制:1000 ms 输入文件: array.in 输出文件: array.out
题目类型:传统 评测方式:文本比较

题目描述

在一个神奇的数字国度里,有一位神秘的数学家小途,他最喜欢研究数组操作。最近,他提出了一个问题,需要你帮助解决: 给定一个初始长度为n的数组,在数组中一共进行m次操作。每次操作分为两类:

1.删除数组中第pos 个数,删除后保证数组内位置连续;

⒉在数组中的第pos个位置插入—个新的数。

pos的取值在1到当前数组长度之间,注意与下标之间的对应关系。

每次操作都是在上一次操作的基础上进行处理。小途想知道经过所有操作后,最终数组是什么。

输入格式

第一行包含两个正整数n和m,分别表示数组的长度和操作次数。第二行以空格隔开输入n个整数,表示原数组。

接下来的m行,每行描述一次操作。每次操作的格式为先输入两个整数 type和pos:

·当type = 1时,表示删除数组中第pos个数;

·当type =2时,再输入一个新的数number,表示在数组的位置pos处插入一个新的数number.

输出格式

输出共一行包含若干个以空格隔开的整数,依次表示经过所有操作后,最终的数组。

样例

样例输入1

5 3
1 2 3 4 5
1 3
2 2 6
1 1

样例输出1

6 2 4 5

数据范围与提示

对于20%的测试数据,保证m=1;

对于另外20%的测试数据,保证m次操作都是删除操作;

对于另外20%的测试数据,保证m次操作都是插入操作;

对于另外20%的测试数据,保证m次操作的位置都是当前数组中最后一个位置;

对于100%的测试数据,保证 1<=n,m<=1000, 1<=a_i,number<=1000,1<=type<=2, 1<=pos<=当前数组的长度

样例解释

初始数组为{1,2,3,4,5}。

第一次操作,删除第3个数,数组变为{1,2,4,5};

第二次操作,在位置2插入元素,数组变为{1,6,2,4,5};

第三次操作,删除第1个数,数组变为{6,2,4,5}。

最终数组为{6,2,4,5}。