#abc278d. [abc278_d]All Assign Point Add

[abc278_d]All Assign Point Add

問題文

長さ NN の数列 A=(A1,A2,dots,AN)A = (A_1, A_2, \\dots, A_N) が与えられます。

QQ 個のクエリが与えられるので、順番にすべて処理してください。 qq 番目 (1leqqleqQ)(1\\leq q\\leq Q) のクエリは以下の 33 つのいずれかの形式で、それぞれ次のようなクエリを表します。

  • 1xq1\\ x _ qAA のすべての要素に xqx _ q を代入する。
  • 2iqxq2\\ i _ q\\ x _ qAiqA _ {i _ q}xqx _ q を加える。
  • 3iq3\\ i _ qAiqA _ {i _ q} の値を出力する。

制約

  • 1leqNleq2times1051 \\leq N \\leq 2\\times10^5
  • 1leqQleq2times1051 \\leq Q \\leq 2\\times10^5
  • 0leqAileq109(1leqileqN)0 \\leq A _ i \\leq 10^9\\ (1\\leq i\\leq N)
  • qq 番目 (1leqqleqQ)(1\\leq q\\leq Q) のクエリが 22 番目もしくは 33 番目の形式のとき、1leqiqleqN1 \\leq i _ q \\leq N
  • qq 番目 (1leqqleqQ)(1\\leq q\\leq Q) のクエリが 11 番目もしくは 22 番目の形式のとき、0leqxqleq1090 \\leq x _ q \\leq 10^9
  • 33 番目の形式のクエリが存在する
  • 入力される値はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN A1A_1 A2A_2 dots\\dots ANA_N QQ operatornamequery1\\operatorname{query}_1 operatornamequery2\\operatorname{query}_2 vdots\\vdots operatornamequeryQ\\operatorname{query}_Q

ただし、operatornamequeryq\\operatorname{query}_qqq 番目のクエリであり、1 x, 2 i x, 3 i の形式のいずれかで与えられる。

出力

operatornamequeryq\\operatorname{query}_q33 番目の形式であるような q(1leqqleqQ)q\\ (1\\leq q\\leq Q) の個数を XX として、XX 行出力せよ。 j(1leqjleqX)j\\ (1\\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 を出力します。
  • A3A_344 を加えます。A=(3,1,8,1,5)A=(3,1,8,1,5) となります。
  • A3=8A_3=8 なので、88 を出力します。
  • AA の要素すべてに 11 を代入します。A=(1,1,1,1,1)A=(1,1,1,1,1) となります。
  • A3A_344 を加えます。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 の要素の値が 32operatornamebit32\\operatorname{bit} 整数に収まらない可能性があることに注意してください。


入力例 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