Problem6903--外挂

6903: 外挂

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

Description

我的就是我的,你也是我的,记住了,狐狸!
                                                                      ——韩信-白龙吟
对于打赌输了的小 T 会遭受到制裁,小 s 修改了数据库使他可以派出许多军队来围攻小 T。
很不幸,小 T 与小 s 打赌打输了,现在小 T 遭受着枪林弹雨与十面埋伏,因为小 T 是神所以他决定要扭转局势。
他要修改数据库!
数据总库的信号墙有 $n$ 个电极插头,每个插头有一个信号 $a_i$,
小 T 可以使在区间 $[l,r]$ 内的所有信号加上一个值 $k$。
对于区间 $[l,r]$ 的信号强度有一个计算公式:
我们定义 $f(k)=a_k \times \sum_{j=k+1}^r a_j$
则信号强度就为:$\sum_{i=l}^r f_i$
你可以认为 $f(i)$ 就是第 $i$ 个插头的信号强度。
现在小 T 一会儿修改信号值,一会儿询问信号强度,你是数据库的管理员,为了不被小 TD,所以你要告诉他信号强度是多少。

Input

第一行两个整数 $n,Q$
第二行 $n$ 个整数代表 $a$
后 $Q$ 行代表操作:
一操作:$1\ l\ r\ x$ 代表区间 $[l,r]$ 加 $x$。
二操作:$2\ l\ r$ 代表区间询问。

Output

每一行一个数字,表示对于一个二操作的答案。

Constraints

$100\%\  1≤n,Q≤10^5$
对于所有 $a_i \le 100$
保证所有二操作的答案都是在 long long 范围内

Sample 1 Input

5 2
1 2 3 4 5
1 1 2 1
2 1 2

Sample 1 Output

6
1 1 2 1 使 a[1]~a[2] 的值每个都加了 $1$, 即a[1]=2, a[2]=3,所以 2 1 2=a[1]*a[2]=2*3=6。

HINT

题目来源:牛客网

Source/Category