描述
给定一个长度为n的序列,m个操作,操作一共分三种:
1.将区间[l,r]中的数开根并向下取整。
2.输出区间[l,r]的区间和。
3.给序列中的第l个加上r。
输入
第一行两个数n,m
第二行n个整数,代表序列
接下来m行每行三个整数a,l,r,如果a=0则为第一个操作,a=1为第二个操作,a=2为第三个操作
输出
对于每个询问输出一行一个整数。
样例输入
10 6
1 2 3 4 5 6 7 8 9 10
0 1 10
1 1 10
1 1 5
0 5 8
2 7 9
1 4 8
样例输出
19
7
15
提示
1≤n,m≤105,序列中的数均为正整数且小于等于1012,第三个操作加上的数也小于等于1012
cmath里的sqrt()函数