#P1017. 数列分块入门 5

数列分块入门 5

P1017:数列分块入门 5

题目描述

给出一个长为 nn 的数列,以及 nn 个操作,操作涉及区间开方,区间求和。

这里的区间开方指将区间中的每个数都替换为其下取整平方根。

输入输出格式

输入

第一行输入一个整数 nn

第二行输入 nn 个整数,第 ii 个整数为 aia_i

接下来输入 nn 行询问,每行输入四个整数 opt,l,r,c\mathrm{opt}, l, r, c

opt=0\mathrm{opt}=0,表示将位于 [l,r][l,r] 的数字都开方,cc 忽略。

opt=1\mathrm{opt}=1,表示询问位于 [l,r][l,r] 的所有数字之和,cc 忽略。

输出

对于每次询问,输出一行一个整数表示答案。

样例

4
1 2 2 3
0 1 3 1
1 1 4 4
0 1 2 2
1 1 2 4
6
2

数据范围

  • 对于 100%100\% 的数据,1n500001 \le n \le 50000
  • 为使开方操作有意义,数据中的 aia_i 为非负整数。
  • 所有输出答案均在 3232 位有符号整数范围内。