Description
$ sylvia 是一个热爱学习的女孩子,今天她想要学习数据结构技巧。 $
$ 在看了一些博客学了一些姿势后,她想要找一些数据结构题来练练手。于是她的好朋友九条可怜酱给她出了一道题。 $
$ 给出一个长度为n的数列A,接下来有m次操作,操作有三种 $
$ 1.对于所有的iin[l,r],将A_i变成A_i+x. $
$ 2.对于所有的iin[l,r],将A_i变成lfloor surd{A_i}
floor. $
$ 3.对于所有的iin[l,r],询问A_i的和. $
$ 作为一个不怎么熟练的初学者,sylvia 想了好久都没做出来。而可怜酱又外出旅游去了,一时间 联系不上。于是她决定向你寻求帮助:你能帮她解决这个问题吗。 $
Input
$ 第一行两个数:n,m。 $
$ 接下来一行 n个数 A_i。 $
$ 接下来 m 行中,第 i 行第一个数 ti 表示操作类型: $
$ 若 ti=1,则接下来三个整数 li,ri,xi,表示操作一。 $
$ 若 ti=2,则接下来三个整数 li,ri,表示操作二。 $
$ 若 ti=3,则接下来三个整数 li,ri,表示操作三。 $
Output
对于每个询问操作,输出一行表示答案。
Sample1
Input
5 5
1 2 3 4 5
1 3 5 2
2 1 4
3 2 4
2 3 5
3 1 5
Output
5
6
Sample2
见样例数据下载。
Hints
测试点编号 | nn 的规模 | mm 的规模 | 其他约定 |
---|---|---|---|
1 | n≤3000n≤3000 | m≤3000m≤3000 | |
2 | |||
3 | |||
4 | n≤100000n≤100000 | m≤100000m≤100000 | 数据随机生成 |
5 | |||
6 | ti≠1ti≠1 | ||
7 | |||
8 | |||
9 | |||
10 |
对于所有数据,保证有 1≤li≤ri≤n,1≤Ai,xi≤105
Time Limit:1s
Memory Limit:256MB