All Assign Point Add
题目描述
给你一个长度为 N 的数列 A=(A1,A2,…,AN)。
给出 Q 个查询,按顺序处理所有查询。
第 q 个 (1≤q≤Q) 查询是以下三种格式之一,表示如下查询内容:
1 xq: 将 xq 赋值给 A 的每个元素。
2 iq xq: 将 xq 加到 Aiq 上。
3 iq: 输出 Aiq 的值。
输入格式
输入从标准输入给出,格式如下:
N
A1 A2 … AN
Q
query1
query2
⋮
queryQ
这里,queryq 表示第 q 个查询,格式为以下三者之一:1x、2ix 和 3i。
输出格式
输出 X 行,其中 X 是满足 queryq 为第三种格式的 q 的数量 (1≤q≤Q)。
第 j 行 (1≤j≤X) 应包含对第 j 个此类查询的答案。
5
3 1 4 1 5
6
3 2
2 3 4
3 3
1 1
2 3 4
3 3
1
8
5
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
8000000000
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
7
5
7
21
21
19
10
提示
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。
至少存在一个第三种格式的查询。
输入中的所有数值均为整数。最初,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。
注意 A 的元素可能无法用 32 位整型表示。
标签: AtCoder|abc278D
来源
AtCoder|abc278D