题目:树状数组2 :区间修改,单点查询
题目描述
给定长度为 n 的数列 a[1],a[2],…,a[n],需依次处理 q 个操作,操作分为两类:
- 区间更新:
1 l r x → 将区间 [l,r] 内的每个元素 a[i] 加上 x(即 a[l],a[l+1],…,a[r] 分别加 x);
- 单点查询:
2 i → 查询数列中第 i 个元素 a[i] 的当前值。
输入格式
- 第一行:两个整数 n,q(1≤n,q≤106),表示数列长度和操作数;
- 第二行:n 个整数 a[1],a[2],…,a[n](初始数列,∣a[i]∣≤106);
- 接下来 q 行:每行一个操作,格式为
1 l r x 或 2 i(保证 1≤l≤r≤n,∣x∣≤106)。
输出格式
对于每个 单点查询操作(类型2),输出一行,为对应位置的当前值。
样例
输入:
3 2
1 2 3
1 1 3 0
2 2
输出:
2