编程题
### 问题描述
小秋无聊的时候就喜欢对着一堆数发呆,他认为这样能提升他的数字敏锐能力。
一天他对着一个包含 $n$ 个正整数的序列 $a$ 发呆的时候,突然发现了这样一个事情。他发现序列 $a$ 中有一段连续的数 $a[l,r]$(下标从 $1$ 开始),满足 $\sum_{i = 1}^{r - l + 1}i \times a_{l + i - 1} = \sum_{i = 1}^{r - l + 1}i \times a_{r - i + 1} $,这让他产生了极大的兴趣,并把这样一段序列命名为平衡序列。现在小秋把这段平衡序列交给你,你需要回答或执行他给你的 $q$ 次操作,操作分为以下四类:
* 将某区间每一个数都加上一个数 $x$;
* 将某区间每一个数都改为一个数 $x$;
* 询问某个区间所有数的和;
* 判断某个区间是否为平衡序列。
### 输入格式
第 $1$ 行输入包含两个整数 $n,q$,表示序列 $a$ 的长度和操作次数。
第 $2$ 行输入包含 $n$ 个整数,表示序列 $a$;
接下来 $q$ 行每行包含若干个整数,表示一个操作,具体如下:
操作 $1$:格式:`1 l r x` 含义:将区间 $[l,r]$ 内每个数加上 $x$;
操作 $2$:格式:`2 l r x` 含义:将区间 $[l,r]$ 内每个数加上 $x$;
操作 $3$:格式:`3 l r` 含义:输出区间 $[l,r]$ 每个数的和。
操作 $4$:格式:`4 l r` 含义:输出区间 $[l,r]$ 是否为平衡序列。
### 输出格式
输出包含若干行整数。
对于操作 $3$,输出一个整数,表示询问区间所有数的和。
对于操作 $4$,如果所询问的序列是平衡序列,输出 `YES`,否则输出 `NO`。
### 样例输入
```
5 6
1 2 3 4 5
4 1 5
1 1 2 2
4 2 4
2 1 1 5
4 1 5
3 3 5
```
### 样例输出
```
NO
YES
YES
12
```
### 说明
第 $1$ 次询问序列为 {$1 , 2 , 3 , 4,5$},$1\times1 + 2 \times 2 + 3\times 3 + 4 \times4 + 5\times5 \not= 1\times 5 + 2\times 4 + 3\times3+4\times2+5\times1 $,因此不是平衡序列。
第 $3$ 次询问序列为 {$4,3,4$},$1\times4+2\times3+3\times4=1\times4+2\times3+3\times4$,因此是平衡序列。
第 $6$ 次询问序列为 {$3,4,5$},和为 $12$。
### 评测数据规模
对于 $20$% 的评测数据,$1 \leq n,q \leq 10^3$;
对于 $40$% 的评测数据,$1\leq n,q \leq 10^4$;
对于 $100$% 的评测数据,$1 \leq n,q \leq 10^5$,$1\leq a_i,x \leq 10^6$。