#A0005. 网络攻防战

网络攻防战

No testdata at current.

题目背景

小 X 闲来无事,决定做两道题。

但这时他突然发现——机房的电脑居然被小 Y 入侵了!

题目描述

小 X 的机房里有 nn 台电脑,每台电脑都有一个防御指数 did_i

同时,小 Y 还可以使用技能攻击,将 [l,r][l,r] 区间内所有电脑的防御指数减少 kk

但是小 X 会使用防火墙,可以将 [l,r][l,r] 区间内所有电脑的防御指数加上一个首项为 kk,公差为 dd 的等差数列。

现在小 Y 给了你一些问题,他想知道某些区间内防御指数之和是多少?

输入格式

第一行有两个数 nnmm,表示有 nn 台电脑和 mm 次操作。

第二行有 nn 个数,表示每台电脑最开始时的防御指数 did_i

接下来 mm 行,每行最前面有一个数 opop

op=1op=1,输入三个整数 l,r,kl,r,k,表示将 [l,r][l,r] 区间内所有电脑的 did_i 减少k;

op=2op=2,输入四个整数 l,r,k,pl,r,k,p,表示将 [l,r][l,r] 区间内所有电脑的 did_i 加上一个首项为 k,公差为 p 的等差数列;

op=3op=3,输入两个正整数 l,rl,r,表示询问 [l,r][l,r] 区间内 did_i 之和。

输出格式

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

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

样例解释

在执行完第一个操作后,所有电脑的防御指数变为:1 1 2 3 4

此时 [1,3][1,3] 区间 did_i 之和为 44

在执行完第三个操作后,所有电脑的防御指数变为:1 2 4 6 8

此时 [3,5][3,5] 区间 did_i 之和为 1818

数据规模与约定

1n,m1051\le n,m\le 10^5

0di2×1030\le d_i\le 2\times10^3

1l,rn1\le l,r\le n