题号:NC208615
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld
题目描述
有一列长为
)
的数列A
)
,有m
)
个询问和修改:
对于询问

,表示A中询问区间[l,r]中第k大的数是多少
)
。(如果某数在区间中最大值的个数超过两个时次大值等于最大值)
对于修改

,表示修改A中第pos个数为x
)
。
输入描述:
一个数n,表示数列A长度为n。
接下来一行n个数表示数列A。
下一行接一个数m表示有m个询问。
对于询问:格式为
,1表示询问,l、r表示询问的区间,k表示第k大。
对于修改:格式为
,2表示修改,pos表示修改的位置,x表示修改为x。
输出描述:
对于每个询问输出一个数表示答案。
示例1
输入
复制
5
1 2 3 4 5
4
1 1 3 2
2 1 3
1 1 3 1
1 4 5 2