Coding is the closest thing we have to superpower !

3670 : 线段树-区间修改区间求和1【模板】
描述

给定一个长度为n的数组a_1, a_1, a_2, ..., a_{n}​。

有m个操作,形如以下两种:

1、inc(lf, rg, v)表示将区间[lf, rg]里面的元素都增加v。

2、sum(lf, rg)表示查询区间[lf, rg]里面元素的和。

输入

第一行给出两个整数n(1 \le n \le 10^5)

接下来一行给出n个整数a_1, a_1, a_2, ..., a_{n}( |a_i| \le 10^4)

然后输入一个整数m(1 \le m \le 10^5)

接下来m行,如果输入2 \  lf \  rg(1 \le lf \le rg \le n),表示sum操作;如果输入1 \  lf \  rg \  v(1 \le lf \le rg \le n, |v|\le 10^4),则表示inc操作。

输出

对于每一个sum操作,输出区间和。

样例

输入

10
1 2 3 4 5 6 7 8 9 10
5
2 4 4
2 1 10
2 2 4
1 3 6 3
2 2 4

输出

4
55
9
15
标签
语言:
主题: