CF315B Sereja and Array
题目描述
Sereja 有一个包含 $n$ 个整数的数组 $a_{1},a_{2},...,a_{n}$。Sereja 很活跃,他现在要进行 $m$ 次操作。每次操作有以下三种形式之一:
1. 将第 $v_{i}$ 个数组元素赋值为 $x_{i}$。即执行 $a_{v_{i}}=x_{i}$。
2. 将每一个数组元素都增加 $y_{i}$。即对于 $1\leq i\leq n$,执行 $a_{i}=a_{i}+y_{i}$。
3. 在纸上写下第 $q_{i}$ 个数组元素的值,也就是 $a_{q_{i}}$。
请帮助 Sereja 完成所有操作。
输入格式
第一行包含两个整数 $n$ 和 $m$,表示数组长度和操作次数,$1\leq n,m\leq 10^{5}$。
第二行包含 $n$ 个以空格分隔的整数,$a_{1},a_{2},...,a_{n}$,表示初始数组,$1\leq a_{i}\leq 10^{9}$。
接下来的 $m$ 行每行为一条操作描述,第 $i$ 行描述第 $i$ 次操作。每行的第一个整数 $t_{i}$,$1\leq t_{i}\leq 3$,表示操作类型。如果 $t_{i}=1$,则后面跟两个整数 $v_{i}$ 和 $x_{i}$,$1\leq v_{i}\leq n,\,1\leq x_{i}\leq 10^{9}$;如果 $t_{i}=2$,则后面跟一个整数 $y_{i}$,$1\leq y_{i}\leq 10^{4}$;如果 $t_{i}=3$,则后面跟一个整数 $q_{i}$,$1\leq q_{i}\leq n$。
输出格式
对于每一个第三类型的操作,输出相应 $a_{q_{i}}$ 的值。按照对应询问在输入中出现的顺序输出,每行一个值。
说明/提示
由 ChatGPT 5 翻译