问题描述
给定一个长度为N的序列A=(A1,A2,…,AN)。
给定Q个查询,按顺序处理它们。第q个(1≤q≤Q)查询可以有以下三种格式之一,分别表示以下查询:
- 1 xq:将xq赋值给A的每个元素。
- 2 iq xq:将xq添加到Aiq。
- 3 iq:打印Aiq的值。
约束条件
- 1≤N≤2×105
- 1≤Q≤2×105
- 0≤Ai≤109 (1≤i≤N)
- 如果第q个(1≤q≤Q)查询是第二或第三种格式,则1≤iq≤N。
- 如果第q个(1≤q≤Q)查询是第一或第二种格式,则0≤xq≤109。
- 存在一个第三种格式的查询。
- 输入中的所有值都是整数。
输入
输入以以下格式从标准输入给出:
N
A1 A2 … AN
Q
query1
query2
⋮
queryQ
这里,queryq表示第q个查询,它可以是以下格式之一:1 x
,2 i x
和 3 i
。
输出
打印X行,X是q的数量(1≤q≤Q),满足queryq是第三种格式。第j行(1≤j≤X)应该包含第j个这种查询的答案。
示例输入 1
5
3 1 4 1 5
6
3 2
2 3 4
3 3
1 1
2 3 4
3 3
示例输出 1
1
8
5
初始时,A=(3,1,4,1,5)。查询的处理过程如下:
- A2=1,所以打印1。
- 将4加到A3,得到A=(3,1,8,1,5)。
- A3=8,所以打印8。
- 将1分配给A的每个元素,得到A=(1,1,1,1,1)。
- 将4加到A3,得到A=(1,1,5,1,1)。
- A3=5,所以打印5。
示例输入 2
1
1000000000
8
2 1 1000000000
2 1 1000000000
2 1 1000000000
2 1 1000000000
2 1 1000000000
2 1 1000000000
2 1 1000000000
3 1
示例输出 2
8000000000
请注意,A的元素可能无法适应32位整数类型。
示例输入 3
10
1 8 4 15 7 5 7 5 8 0
20
2 7 0
3 7
3 8
1 7
3 3
2 4 4
2 4 9
2 10 5
1 10
2 4 2
1 10
2 3 1
2 8 11
2 3 14
2 1 9
3 8
3 8
3 1
2 6 5
3 7
示例输出 3
7
5
7
21
21
19
10