Problem4579--线段树练习 3

4579: 线段树练习 3

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

给你 $N\ (1 \leq N \leq 200,000)$ 个数,有两种操作:
1:给区间 $[a,\ b]$ 的所有数增加 $X$;
2:询问区间 $[a,\ b]$ 的数的和。

Input

第一行一个正整数 N。
接下来 $N$ 行 $N$ 个整数,
再接下来一个正整数 $Q\ (1 \leq Q \leq 200,000)$,每行表示一个操作。
如果第一个数是 $1$,后接 $3$ 个正整数,表示在区间 $[a,\ b]$ 内每个数增加 $X$;如果是 $2$,后接 $2$ 个正整数,表示询问区间 $[a,\ b]$ 的和是多少。

Output

对于每个询问输出一行一个答案。

Sample 1 Input

3
1
2
3
2
1 2 3 2
2 3

Sample 1 Output

9

Source/Category

数据结构 2.9.线段树