问题描述 |
---|
给你 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 <= 106,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 |
提示说明 |
冲就完事了! |
相关 |