#L0635. 信仰加持

信仰加持

题目描述

nn 个人排成一行,编号为 1n1 \sim n,初始时每个人的信仰值均为 00。接下来会依次进行 mm 个操作,操作分为两种:

  1. 加持操作:将编号在 [l,r][l, r] 范围内的所有人的信仰值增加 kk
  2. 查询操作:查询编号在 [l,r][l, r] 范围内所有人的信仰值之和。

请你对每个查询操作输出对应的结果。

输入格式

第一行包含两个整数 n,mn, m,分别表示人数和操作数。

接下来 mm 行,每行描述一个操作:

  • 若第一个整数为 11,则后面跟着 l,r,kl, r, k 三个整数,表示一次加持操作。
  • 若第一个整数为 22,则后面跟着 l,rl, r 两个整数,表示一次查询操作。

输出格式

对每个查询操作,输出一行一个整数,表示查询结果。输出行数等于查询操作的数量。

样例

5 5
2 1 2
1 4 4 2
1 2 4 7
1 4 5 6
2 3 4
0

22

</p>

提示

【样例说明】

初始所有人的信仰值为 00,第一次查询时全部为 00,输出 00。执行五次加持操作后,五个人的信仰值分别为 0,7,7,15,60, 7, 7, 15, 6,因此第二次查询 [3,4][3, 4] 的结果为 7+15=227 + 15 = 22

【数据范围与约定】

测试点$n, m$特殊性质
$1 \sim 3$$\le 10$
$4 \sim 5$$\le 10^3$
$6 \sim 8$$n \le 10^9, m \le 10^3$特殊性质 A
$9 \sim 10$$n \le 10^9, m \le 10^3$

特殊性质 A:所有操作均为加持操作(没有查询操作)。

对于所有测试点,1n1091 \le n \le 10^91m1031 \le m \le 10^31lrn1 \le l \le r \le nk10k \le 10

难度 普及
通过率
尝试 0
已通过 0
ID
1363
类型
传统题
Time Limit
1000ms
Memory Limit
125MiB
上传者