编程题
### 问题描述 给定一个数组 $A=\left(a_1, a_2, \cdots, a_n\right)$, 请对该数组执行 $m$ 次修改或查询操作: 若操作为 $1 x y$, 表示将 $a_x$ 的值修改为 $y$; 若操作为 $2 l r p$ 表示求 $a_p$ 在 $a_l, a_{l+1}, \cdots, a_r$ 中是第几小的(比 $a_p$ 小的元 素个数加 1)。 ### 输入格式 输入的第一行包含一个整数 $n$ 。 第二行包含 $n$ 个整数 $a_1, a_2, \cdots, a_n$, 表示数组中每个数的初始值, 相邻的 整数之间用一个空格分隔。 第三行包含一个整数 $m$ 。 接下来 $m$ 行每行包含一个操作, 可能是 $1 x_i y_i$ 或 $2 l_i r_i p_i$, 相邻的整数之 间用一个空格分隔。 ### 输出格式 输出一行, 包含多个整数, 相邻的整数之间用一个空格分隔, 依次表示第 二种操作的答案。 ### 样例输入 ```text 3 1 2 3 3 2 1 3 2 1 2 4 2 1 3 2 ``` ### 样例输出 ```text 2 3 ``` ### 评测用例规模与约定 对于 $20 \%$ 的评测用例, $n \leq 500$ ; 对于 $40 \%$ 的评测用例, $n \leq 5000$; 对于所有评测用例, $1 \leq n \leq 100000,1 \leq m \leq 2 n, 1 \leq a_i, y_i \leq 10^6$, $1 \leq x_i \leq n, \quad 1 \leq l_i \leq p_i \leq r_i \leq n \circ$
查看答案
赣ICP备20007335号-2