[P5350] 序列 (加强版)

题目背景

本题为 [P5350](https://www.luogu.org/problem/P5350) 的加强版。 本题很良心,不卡空间!

题目描述

有一个序列 $a_n$ 和 $q$ 次操作。 - `1 l r` 求区间 $[l,r]$ 的和 - `2 l r k` 区间 $[l,r]$ 赋值为 $k$ - `3 l r k` 区间 $[l,r]$ 加上 $k$ - `4 l1 r1 l1 r2` 将区间 $[l_1,r_1]$ 复制到 $[l_2,r_2]$ 处 - `5 l1 r1 l2 r2` 将区间 $[l_1,r_1]$ 与 $[l_2,r_2]$ 交换 - `6 l r` 翻转区间 $[l,r]$ 最后还要输出整个序列,所有输出都要对 $10^9+7$ 取模。 为了卡掉某些乱搞做法,**本题强制在线**。 每次操作中,除了输入第一个数,其它所有数都需要异或 $\text{last}$ 才是实际的操作。 $\text{last}$ 为上一次 $1$ 操作的答案 $\pmod{10^9 +7}$,定义初始 $\text{last} = 0$。

输入输出格式

输入格式


第一行两个正整数 $n,q$,表示序列长度与操作个数。 第二行 $n$ 个正整数,表示序列 $a$ 接下来 $q$ 行,每行表示一次操作。

输出格式


对于每次操作,输出一行一个整数表示答案。 最后一行输出 $n$ 个整数,表示最终的序列 $a$。

输入输出样例

输入样例 #1

10 10
7 1 3 2 2 4 0 1 2 2 
4 10 10 3 3
3 4 10 5
6 6 7
6 9 10
1 10 10
5 14 13 1 0
2 15 13 7
5 3 3 2 2
5 5 3 15 13
3 4 14 7

输出样例 #1

7
7 0 0 0 7 7 7 1 2 7

说明

【数据范围】 $1\le n,q \le 3\times 10^5$ $0\le a_i,k \le 10^9$ 对于 $4,5$ 操作,保证 $r_1-l_1 = r_2-l_2$ 且 $[l_1,r_1] \cap [l_2,r_2] = \varnothing$ **不保证数据随机** 且 **没有梯度** 想交 ODT 的就算了吧!