1334:积木-3

时间限制: 2 S | 内存限制: 65536 KB
Accept: 0 | Submit: 0
[提交] [状态] [讨论版]
描述

给你 n 堆积木,第 i 堆积木有 a[i] 个,现在你需要处理以下三种操作:

1 L R x:给区间 [L,R] 内的每堆积木添加 x 个,即对于 L <= i <= R,a[i] += x。

2 L R x:把区间 [L,R] 内的每堆积木拿走 x 个,即对于 L <= i <= R,a[i] -= x。注意,如果拿之前 a[i] 不足 x 个则全部拿完。

3 y:询问第 y 堆积木有多少个,即输出 a[y]。

输入

第一行是一个正整数 n 代表积木的堆数。(1 <= n <= 100000)

然后是 n 个正整数代表每堆积木的个数。(1<= a[i] <= 10000)

第三行是一个正整数 m 代表操作的次数。(1 <= m <= 10000)

接下来 m 行,每行代表一个操作,保证所有的 1 <= L <= R <= n,1 <= x <= 10000,1 <= y <= n。

输出

针对每个“3 y”操作,输出第 y 堆积木有多少个,然后换行。

样例输入

10

6 2 5 4 8 1 3 4 7 9

10

1 3 7 9

2 4 8 12

3 4

2 1 7 3

1 5 9 6

3 5

3 6

1 4 5 2

2 1 3 4

3 2

样例输出

1

8

6

0

HINT

冲就完事了!

来源
19-20(2)第3次线上赛