#Z0201708. 数组操作(二)

数组操作(二)

题目描述

小爱为了加密一个数列,要对这个数列进行操作。

小爱有3种操作:

一:对位置x的数值加y。

二:把位置x和位置y的数值对换。

三:把位置l到位置r的一段数值和位置(l+x)到位置(r+x)的一段数值对换。

例如:对1234567进行一操作,x=3,y=4,新的数列就是1274567。对1234567进行二操作,x=3,y=4,新的数列就是1243567。对1234567进行三操作,l=1,r=2,x=3,新的数列就是4531267。

他想知道操作后数值为多少。

输入格式

第一行有两个整数n,m,表示有n个数,m个操作 第二行有n个数,表示数组的数值。 再接下来,有m行,表示依次进行的操作。每行开头一个数k

若k=1,表示操作1,后面跟着x和y,意义同题目。

若k=2,表示操作2,后面跟着x和y,意义同题目。

若k=3,表示操作3,后面跟着l、r和x,意义同题目。

输出格式

输出完成后的数列。

5 3
1 2 3 4 5
1 3 7
2 1 5
3 1 2 3
4 1 10 5 2

数据规模与约定

n<=100,m<=100

对于操作一x<=n

对于操作二x<=n,y<=n

对于操作三l<=r<=n/2,x<=n,放心数据保证时间不超。