题单练习 提高组模版题

A2756 | 【模板】树状数组 2

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

已知一个长度为 $n$ 的数列 $a$,你需要进行下面两种操作:

1. 将区间 $[x, y]$ 每一个数加上 $k$;

2. 求出第 $k$ 个数的值。

输入格式

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

第二行包含 $n$ 个用空格分隔的整数,表示数列第 $i$ 项的初始值。

接下来 $m$ 行每行包含 $2$ 或 $4$个整数,表示一个操作,具体如下:

操作 $1$: 格式:1 x y k 含义:将区间 $[x,y]$ 内每个数加上 $k$;

操作 $2$: 格式:2 k 含义:输出第 $k$ 个数的值。

输出格式

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

输入输出样例

输入 #1
5 5
1 5 4 2 3
1 2 4 2
2 3
1 1 5 -1
1 3 5 7
2 4
输出 #1
6
10
C++ 编辑器
输入
输出