题目描述
長さ N の数列 A=(A1,A2,…,AN) が与えられます。
Q 個のクエリが与えられるので、順番にすべて処理してください。 q 番目 (1≤q≤Q) のクエリは以下の 3 つのいずれかの形式で、それぞれ次のようなクエリを表します。
- 1 xq : A のすべての要素に xq を代入する。
- 2 iq xq : Aiqに xq を加える。
- 3 iq : Aiq の値を出力する。
输入格式
入力は以下の形式で標準入力から与えられる。
N A1 A2 … AN Q query1 query2 ⋮ queryQ
ただし、queryq は q 番目のクエリであり、1 x
, 2 i x
, 3 i
の形式のいずれかで与えられる。
输出格式
queryq が 3 番目の形式であるような q (1≤ q≤ Q) の個数を X として、X 行出力せよ。 j (1≤ j≤ X) 行目にはそのようなクエリのうち j 番目のクエリに対する答えを出力せよ。
题目大意
【题目翻译】
给定长度为 n 的数组 a,每次有三种操作:
- opi=1,表示将 a 数组全部元素替换成 k。
- opi=2,表示 ai←ai+k。
- opi=3,表示查询 ai 的值。
对于每个 opi=3,输出结果。
translated by
https://www.luogu.com.cn/user/367488
【输入格式】
第一行一个数 n。
接下来 n 个数,表示 a 数组。
第三行一个数 q。q 表示操作次数。
接下来 q 行,每行表示一次操作:
- opi=1,则再读入一个数 k。
- opi=2,则再读入两个数 i,k。
- opi=3,则再读入一个数 i。
【输出格式】
对于每个 opi=3,输出结果。
【数据范围】
1≤n,q≤2×105
保证 1≤i≤n,1≤ai,k≤109。
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 ≤ A i ≤ 109 (1≤ i≤ N)
- q 番目 (1≤ q≤ Q) のクエリが 2 番目もしくは 3 番目の形式のとき、1 ≤ i q ≤ N
- q 番目 (1≤ q≤ Q) のクエリが 1 番目もしくは 2 番目の形式のとき、0 ≤ x q ≤ 109
- 3 番目の形式のクエリが存在する
- 入力される値はすべて整数
Sample Explanation 1
はじめ、A=(3,1,4,1,5) です。 それぞれのクエリでは、以下のような処理が行われます。 - A2=1 なので、1 を出力します。 - A3 に 4 を加えます。A=(3,1,8,1,5) となります。 - A3=8 なので、8 を出力します。 - A の要素すべてに 1 を代入します。A=(1,1,1,1,1) となります。 - A3 に 4 を加えます。A=(1,1,5,1,1) となります。 - A3=5 なので、5 を出力します。
Sample Explanation 2
A の要素の値が 32bit 整数に収まらない可能性があることに注意してください。