编程题
### 问题描述 小秋无聊的时候就喜欢对着一堆数发呆,他认为这样能提升他的数字敏锐能力。 一天他对着一个包含 $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$。
查看答案
赣ICP备20007335号-2