SP6377 SAMTWARR - Two Array Problem

题目描述

有两个长度都为 $N$($1 \le N \le 10^5$)的数组,第一个编号为 $0$,第二个编号为 $1$。数组的下标从 $0$ 开始。最开始元素全都是 $0$。 有 $M$($1 \le M \le 10^5$)次操作,每次操作为以下三种中的一种: 1. $0\ a\ l\ r$:输出编号为 $a$ 的数组中下标从 $l$ 到 $r$ 的所有元素之和。设 $k$ 为编号为 $a$ 的数组,要输出的是 $\sum^{r}_{i=l}k_i$。 2. $1\ a\ i\ v$:将编号为 $a$ 的数组中下标为 $i$ 的元素更改为 $v$。 3. $2\ l\ r$:将两个数组中下标从 $l$ 到 $r$ 的元素交换。设两个数组分别为 $a$ 和 $b$,交换 $a_l$ 与 $b_l$,$a_{l+1}$ 与 $b_{l+1}$,$\cdots$,$a_r$ 与 $b_r$。 接下来 $M$ 行,每行代表一个操作,具体是什么操作由第一个数决定,将其称为 $c$: - $c = 0$:接下来有三个整数 $a, l, r$,$0 \le a \le 1$,$0 \le l \le r \le N-1$。 - $c = 1$:接下来有三个整数 $a, i, v$,$0 \le a \le 1$,$0 \le i \le N-1$,$-10000 \le v \le 10000$。 - $c = 2$:接下来有两个整数 $l, r$,$0 \le l, r \le N-1$。

输入格式

The first line of input contains two integers - N, M. The folowing M lines contains information about queries. On each query - one line: First integer number cmd contains 0, 1 or 2 (type of query described above). if cmd equals 0, then following 3 integers arr, left, right - 0

输出格式

On each query with cmd equals 0 you should output corresponding value described above.