#abc278d. [abc278_d]All Assign Point Add

[abc278_d]All Assign Point Add

问题描述

给定一个长度为NN的序列A=(A1,A2,,AN)A = (A_1, A_2, \dots, A_N)

给定QQ个查询,按顺序处理它们。第qq(1qQ)(1\leq q\leq Q)查询可以有以下三种格式之一,分别表示以下查询:

  • 1 xq1\ x_q:将xqx_q赋值给AA的每个元素。
  • 2 iq xq2\ i_q\ x_q:将xqx_q添加到AiqA_{i_q}
  • 3 iq3\ i_q:打印AiqA_{i_q}的值。

约束条件

  • 1N2×1051 \leq N \leq 2\times10^5
  • 1Q2×1051 \leq Q \leq 2\times10^5
  • 0Ai109 (1iN)0 \leq A_i \leq 10^9\ (1\leq i\leq N)
  • 如果第qq(1qQ)(1\leq q\leq Q)查询是第二或第三种格式,则1iqN1 \leq i_q \leq N
  • 如果第qq(1qQ)(1\leq q\leq Q)查询是第一或第二种格式,则0xq1090 \leq x_q \leq 10^9
  • 存在一个第三种格式的查询。
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入给出:

NN A1A_1 A2A_2 \dots ANA_N QQ query1\operatorname{query}_1 query2\operatorname{query}_2 \vdots queryQ\operatorname{query}_Q

这里,queryq\operatorname{query}_q表示第qq个查询,它可以是以下格式之一:1 x2 i x3 i

输出

打印XX行,XXqq的数量(1qQ)(1\leq q\leq Q),满足queryq\operatorname{query}_q是第三种格式。第jj行(1jX1\leq j\leq X)应该包含第jj个这种查询的答案。


示例输入 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)A=(3,1,4,1,5)。查询的处理过程如下:

  • A2=1A_2=1,所以打印11
  • 44加到A3A_3,得到A=(3,1,8,1,5)A=(3,1,8,1,5)
  • A3=8A_3=8,所以打印88
  • 11分配给AA的每个元素,得到A=(1,1,1,1,1)A=(1,1,1,1,1)
  • 44加到A3A_3,得到A=(1,1,5,1,1)A=(1,1,5,1,1)
  • A3=5A_3=5,所以打印55

示例输入 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

请注意,AA的元素可能无法适应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