#P13825. 【模板】线段树 1.5

【模板】线段树 1.5

题目描述

如题,已知一个长度为 nn 的数列 {ai}\{a_i\}1in1 \leq i \leq n),初始时 aa 序列满足 ai=ia_i = i。你需要进行下面两种操作:

  1. 将某区间每一个数加上 kk
  2. 求出某区间每一个数的和。

输入格式

第一行包含两个整数 n,mn, m,分别表示该数列数字的个数和操作的总个数。

接下来 mm 行每行包含 3344 个整数,表示一个操作,具体如下:

  1. 1 l r k:将区间 [l,r][l,r] 内每个数加上 kk
  2. 2 l r:输出区间 [l,r][l,r] 内每个数的和。

输出格式

输出包含若干行整数,即为所有操作 2 的结果。

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

提示

对于 30%30\% 的数据,n8n \le 8m10m \le 10
对于 50%50\% 的数据,n105n \le {10}^5
对于 100%100\% 的数据,1m,k1051 \le m,k \le {10}^51lrn1091 \leq l \leq r \leq n\leq 10^9