AT_abc441_g [ABC441G] Takoyaki and Flip
题目描述
有 $N$ 个盘子从左到右排成一条直线。我们将从左数的第 $i$ 个盘子($1\le i\le N$)称为盘子 $i$。初始状态下,所有盘子均**正面朝上**,且每个盘子里都没有放章鱼烧。
请你处理总计 $Q$ 次的以下 $3$ 种类型的询问:
- **类型 $1$**:给定整数 $L,R,X$。对于满足 $i=L,L+1,\ldots,R$ 的所有盘子 $i$,若该盘子**正面朝上**,则在盘子 $i$ 中放入 $X$ 个章鱼烧。
- **类型 $2$**:给定整数 $L,R$。对于满足 $i=L,L+1,\ldots,R$ 的所有盘子 $i$,若该盘子里有**至少 $1$ 个**章鱼烧,则将盘子内的章鱼烧全部吃完;随后**翻转**这个盘子(正面朝上则翻为反面朝上,反之则翻为正面朝上)。
- **类型 $3$**:给定整数 $L,R$。输出盘子 $L, L+1, \dots, R$ 中,章鱼烧数量的**最大值**。
输入格式
输入数据按以下格式给出:
> $N$ $Q$
>
> $\mathrm{query}_1$
>
> $\mathrm{query}_2$
>
> $\vdots$
>
> $\mathrm{query}_Q$
其中 $\mathrm{query}_i$ 表示第 $i$ 次询问($1\le i\le Q$),输入格式为以下两种之一:
> $t$ $L$ $R$ $X$
> $t$ $L$ $R$
两种格式分别对应:第 $i$ 次询问的类型为 $t$,附带的参数为 $L,R,X$ 或 $L,R$。**类型 $1$** 的询问采用前一种格式,其余类型的询问采用后一种格式。
输出格式
设**类型 $3$** 的查询总数为 $q$,请输出 $q$ 行答案。其中第 $i$ 行($1\le i\le q$)对应第 $i$ 次**类型 $3$** 查询的结果。
说明/提示
### 样例 #1 解释
每次查询执行后,各个盘子的状态和章鱼烧数量如下表所示。

处理第 $2$ 次询问时,盘子 $2$ 和盘子 $3$ 中章鱼烧数量较多的是盘子 $3$,因此第一行输出盘子 $3$ 中的章鱼烧数量 $4$。
处理第 $5$ 次询问时,盘子 $1$ 至盘子 $6$ 中章鱼烧数量最多的是盘子 $5$,因此第二行输出盘子 $5$ 中的章鱼烧数量 $6$。
处理第 $6$ 次询问时,盘子 $2$ 和盘子 $3$ 中章鱼烧数量较多的是盘子 $2$,因此第三行输出盘子 $2$ 中的章鱼烧数量 $2$。
### 样例 2 解释
请注意,**反面朝上**的盘子中**无法放入**任何章鱼烧。
同时请注意,答案可能会超过 $2^{32}$。
### 数据范围
- $1\le N\le 2\times 10^5$
- $1\le Q\le 2\times 10^5$
- 所有询问均满足 $1\le L\le R\le N$
- **类型 $1$** 询问满足 $1\le X\le 10^9$
- 输入数据保证至少存在 $1$ 次**类型 $3$** 询问
- 所有输入均为整数