题号:NC214583
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld
题目描述
给你一个长度为n的数组,现在定义以下三种操作。
"1 x"表示删除数组的第x(1<=x<=m)个元素,第x+1到第m个元素全部往前移一位。m为操作前数组的元素个数。
"2 x y"表示在数组的第x(1<=x<=m)位插入元素y,原数组的第x个元素到第m个元素全部往后移一位。m为操作前数组的元素个数。
"3 x"表示从数组第x(1<=x<=m)个元素开始与 第x位元素的值相等且连续的一整段数合并到数组的第x位,剩余元素依次前移。m为操作前数组的元素个数。
输入描述:
第一行读入一个n和q(1<=n<=100,1<=q<=100),分别表示初始数组的长度和操作次数。
第二行读入n个整数,表示初始数组的元素。每个元素的大小不超过100。
第三行到第q+2行,每行按格式读入一种操作。
输出描述:
对于每次操作,输出完成操作后的数组。
示例1
输入
复制
8 3
1 2 2 2 3 5 4 2
1 5
2 4 2
3 3
输出
复制
1 2 2 2 5 4 2
1 2 2 2 2 5 4 2
1 2 6 5 4 2