T340542 build

题目背景

一天,Jabb在做摩天楼数独。

题目描述

Jabb要在一条直线上盖楼。最初,每个位置上的楼会有一定的高度。 他可以进行两个操作: * 将一个区间内所有的楼增加(或减少)一定高度。 * 询问,如果他站在一栋楼的左边,到右边的一栋楼为止,能看见多少栋楼。 形式化描述见输入格式。

输入格式

你需要维护一个非负整数数列 $a_{1 \sim n}$。 第一行两个整数 $N$ 和 $Q$,分别是数列长度和操作个数。 第二行 $N$ 个整数,表示数列的每个数初始的值。 接下来 $Q$ 行,每行按照以下格式之一输入: * ```1 x y z```,对于 $[x,y]$ 中的每一个整数 $i$,将 $a_i$ 增加 $z$。 * ```2 x y```,询问,对于 $[x,y]$ 中的每一个整数 $i$,$max_{a_x,a_{x+1},...,a_i}$ 共有多少种不同的取值。

输出格式

对于每一个询问,输出一行,表示询问的答案。

说明/提示

## 数据范围 对于所有数据,保证 $1 \leqslant N,Q \leqslant 10^5$,$x,y,z$是整数,$1 \leqslant x \leqslant y \leqslant n$,$|z| \leqslant 10^9$。 保证数列的每一个数在任一时刻都不超过 $10^9$。 | 测试点编号 | $N \leqslant$ | $Q \leqslant$ | 特殊性质 | | :-: | :-: | :-: | :-: | |$1$|$10^5$|$10^5$|对于所有 ```2``` 操作,$x = y$| |$2$|$1000$|$1000$|无| |$3$|$10^5$|$10^5$|对于所有 ```2``` 操作,$y - x \leqslant 10$| |$4$|$10^5$|$10^5$|没有 ```1``` 操作| |$5$|$10^5$|$10^5$|对于所有 ```1``` 操作,$x = y$| |$6$|$10^5$|$10^5$|对于所有 ```2``` 操作,$x = 1$,$y = n$| |$7 \sim 20$|$10^5$|$10^5$|无|