AT_aalc001_l 数列間の swap
题目描述
给定长度为 $N$ 的整数序列 $A=(A_1,A_2,\ldots,A_N)$、$B=(B_1,B_2,\ldots,B_N)$ 和 $C=(C_1,C_2,\ldots,C_N)$。
需要处理 $Q$ 个操作。每个操作有以下 4 种类型之一:
- `1 l r`:对每个满足 $l\leq k\leq r$ 的整数 $k$,交换 $A_k$ 和 $B_k$ 的值。
- `2 l r`:对每个满足 $l\leq k\leq r$ 的整数 $k$,交换 $B_k$ 和 $C_k$ 的值。
- `3 l r`:对每个满足 $l\leq k\leq r$ 的整数 $k$,交换 $C_k$ 和 $A_k$ 的值。
- `4 i`:请输出满足 $i\leq j\leq N$ 且 $\displaystyle\sum_{k=i}^{j}A_k>0$ 的最小整数 $j$。如果不存在这样的 $j$,输出 $N+1$。
输入格式
输入从标准输入读取,格式如下:
$N\ Q\ A_1\ A_2\ \ldots\ A_N\ B_1\ B_2\ \ldots\ B_N\ C_1\ C_2\ \ldots\ C_N\\ \mathrm{query}_1\\ \mathrm{query}_2\\ \vdots\\ \mathrm{query}_Q$
每个操作之一,格式如下:
$1\ l\ r$
$2\ l\ r$
$3\ l\ r$
$4\ i$
输出格式
假设共有 $q$ 个类型为 $4$ 的操作。输出 $q$ 行,第 $j$ 行输出第 $j$ 个类型 $4$ 操作的答案。
说明/提示
### 样例解释 1
对于第一个查询,$A_2=-4\leq 0$,且 $A_2+A_3=1>0$,所以输出 $3$。
接着进行第二个操作后,$A=(3,6,-3,4,1)$。
对于第三个查询,$A_1=3>0$,所以输出 $1$。
### 数据范围
- $1\leq N\leq 10^5$
- $1\leq Q\leq 10^5$
- $-10^9\leq A_i,B_i,C_i\leq 10^9$
- 对于类型 $1,2,3$ 的操作,$1\leq l\leq r\leq N$
- 对于类型 $4$ 的操作,$1\leq i\leq N$
- 输入中的所有数值均为整数。
由 ChatGPT 5 翻译