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 翻译