东之国的不眠之夜
题目背景
第十五届东方人气投票 音乐部门 65名
第四次国内不知道东方的人对东方原曲的投票调查 63名
题目描述
射命丸文为了调查自己的角色曲的大众接受度,决定一有时间就去人间之里进行调查。
她会用一首bgm来询问$n$位居民,每位居民都自然会对这首bgm评一个好感度$a_i$。当然因为时代的变迁导致居民喜好发生变化,或者因为听的时候心情不一样,这个好感度是时时刻刻会变动的。射命丸文决定用以下两种方式来记录这$m$次变动。
1 x y z 表示序列中,将好感度范围在$[a_x,a_y]$中的所有好感度修改为$z$。注意若$a_x>a_y$,则是将将好感度范围在$[a_y,a_x]$中的所有好感度修改为$z$。若$a_x$与$a_y$相等则不用做任何操作。
2 x z 表示将整个序列中所有的$a_x$这个好感度增加$z$
3 x y 表示求出序列中,求出好感度在$[a_x,a_y]$中所有数字的平均值,向下取整。若$a_x>a_y$,则是求出好感度在$[a_y,a_x]$中所有数字的平均值。若$a_x$与$a_y$相等,输出$0$
她希望你能写一个尽可能快的程序,让河童的计算机快速将其算出答案。
说明:
各位同学可能没有相关知识。我们定义一个数字$x$在范围$[a,b]$(其中$a<b$),则意思是$a \leq x \leq b$,注意是小于等于符号而并非小于符号。例如:$3$在$[3,5]$范围内,$4$在$[3,5]$范围内而$9$不在$[3,5]$范围内。
输入格式
第一行输入两个数字$n$和$m$,意思如题所示。
第二行输入$n$个数字,从$a_1$一直到$a_n$,表示好感度。
第三行开始,一共$m$行,每一行可能会输入$3$或者$4$个数字。
如果第一个数字是$1$,后面就再输入$3$个数字$x,y,z$,表示将$[a_x,a_y]$中的所有好感度修改为$z$。
如果第一个数字是$2$,后面就再输入$2$个数字$x,z$,表示将$a_x$这个好感度增加$z$
如果第一个数字是$3$,后面就再输入$2$个数字$x,y$,表示求出$[a_x,a_y]$中所有数字的平均值,向下取整。
输出格式
对于每个第一个数字是$3$的操作,输出一行,表示这个向下取整的平均值
样例 #1
样例输入 #1
5 6
3 5 8 1 2
1 2 3 5
3 1 4
2 3 5
3 3 5
1 1 4 9
3 2 3
样例输出 #1
2
6
0
提示
样例解释:
经过第一次操作后,数列变为3 5 5 1 2
经过第二次操作后,数列还是3 5 5 1 2
经过第三次操作后,数列变为3 10 10 1 2
经过第四次操作后,数列还是3 10 10 1 2
经过第五次操作后,数列变为9 10 10 9 9
经过第六次操作后,数列还是9 10 10 9 9
数据规模如下表。
特殊性质$1$若为√,则表示没有开头为$1$的询问,对于特殊性质$2$,$3$同理。
数据约定,一开始输入的$a_i \leq 10^9$,所有的$z \leq 10^9$
数据保证,$1 \leq x,y \leq n$
#include<bits/stdc++.h>//万能头
using namespace std;//命名空间
int main(){//主函数
return 0;//返回值
}
```