#YBT32. 「一本通 4.3 例 1」区间和

「一本通 4.3 例 1」区间和

数列操作与求和模板题

一、题目描述

给定一个数列a1,a2,,ana_1, a_2, \cdots, a_n,需要依次执行qq个操作,操作分为以下两类:

  • 操作类型1:格式为“1 i x1\ i\ x”,即给定下标ii和数值xx,将数列中的元素aia_i加上xx
  • 操作类型2:格式为“2 l r2\ l\ r”,即给定区间左右端点llrr,计算并输出数列中从ala_lara_r这些元素的和,也就是i=lrai\sum_{i = l}^{r} a_i的值。

二、输入格式

  • 第一行:包含两个正整数nnqq,分别表示数列的长度和操作的个数,保证1n,q1061 \leq n, q \leq 10^6
  • 第二行:包含nn个整数a1,a2,,ana_1, a_2, \cdots, a_n,表示初始的数列,保证每个元素的绝对值ai106\vert a_i \vert \leq 10^6
  • 接下来qq行:每行代表一个操作,格式为“1 i x1\ i\ x”或“2 l r2\ l\ r”,保证1lrn1 \leq l \leq r \leq nx106\vert x \vert \leq 10^6

三、输出格式

对于每一个类型为“2 l r2\ l\ r”的操作,输出一行,该行包含一个整数,表示计算得到的区间和。

四、样例

输入

3 2
1 2 3
1 2 0
2 1 3

输出

6

五、数据范围与提示

所有数据均满足1n,q1061 \leq n, q \leq 10^6ai106\vert a_i \vert \leq 10^61lrn1 \leq l \leq r \leq nx106\vert x \vert \leq 10^6