题目背景
搬运序列
题目描述
有一个序列an和若干操作。
- 1 l r 求al到ar的和
- 2 l r val 将al到ar赋值为val
- 3 l r val 将al到ar加上val
- 4 l1 r1 l2 r2将al1到ar1复制到al2到ar2处
- 5 l1 r1 l2 r2将al1到ar1与al2到ar2交换
- 6 l r 将al到ar翻转
输入格式
第一行两个数n和m,为序列长度和操作个数。
第二行n个数,为ai。
下面m行,每行为操作种类和相应的若干整数。
输出格式
若干行,对于每个1操作,输出答案。
由于答案可能过大,对109+7取模。
最后一行输出序列an。当然也要取模。
提示
请注意常数优化
若是copy和swap操作,保证r1−l1=r2−l2且区间不重叠。
保证数据随机。
对于30%的数据,保证 n,m≤103 。
对于50%的数据,保证 n,m≤5×104 。
对于70%的数据,保证 n,m≤1.5×105 。
对于100%的数据,保证 n,m≤3×105 , 0≤ai,val<Mod 。