题目背景
小 M 很喜欢数据结构。但是很遗憾,他没有进入省队。
人生有梦,各自精彩。
题目描述
给定两个长度为 n 的序列 ai 和 bi。有以下三种操作:
- 给定区间 [l,r] 以及参数 k,t,把区间内满足 ai×bi≤k 的位置的 ai 和 bi 分别加上 t。
- 给定 i 和 x,y,将 ai 改为 x,bi 改为 y。
- 查询区间内每个位置 ai+bi 的和。
输入格式
第一行包含两个整数 n,m,分别表示该数列数字的个数和操作的总个数。
第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示 ai。
第三行包含 n 个用空格分隔的整数,其中第 i 个数字表示 bi。
接下来 m 行每行包含 3 到 5 个整数,表示一个操作,具体如下:
1 l r k t
:将区间 [l,r] 进行一操作。
2 i x y
:将 ai 改为 x,bi 改为 y。
3 l r
:输出区间 [l,r] 内每个数的和。
输出格式
若干行,每行表示操作 3 的答案。
5 5
23 4 3 3 7
54 29 7 1 2
1 1 5 114 1
2 2 7 9
3 1 5
3 1 2
3 3 4
122
93
18
提示
【样例解释】
第一次修改后,序列 ai 为:{23,4,4,4,8};序列 bi 为 {54,29,8,2,3}。
第二次修改后,序列 ai 为:{23,7,4,4,8};序列 bi 为 {54,9,8,2,3}。
【数据范围】
- 对于 5% 的数据,n,m≤5;
- 对于 10% 的数据,n,m≤100;
- 对于 25% 的数据,n,m≤5000;
- 对于另外 5% 的数据,没有前两种操作;
- 对于另外 10% 的数据,没有第一种操作;
- 对于另外 20% 的数据,没有第二种操作;
对于所有数据,1≤n,m≤105,0≤ai,bi,k,t,x,y≤105。