A33359.可变数组
普及+/提高
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
给定一个长度为 N 的数组 A1,A2,⋯,AN。
你需要执行 Q 个操作,第 i 个操作的类型为 Ti:
- Ti=1:给定两个整数 Pi 和 Xi,将 APi 的值替换为 Xi。
- Ti=2:给定两个整数 Li 和 Ri,交换 ALi 和 ARi 的值。
- Ti=3:给定两个整数 Li 和 Ri,查询 ALi,ALi+1,⋯,ARi 中的最大值。
- Ti=4:给定三个整数 Xi,Li 和 Ri,查询数组中 [Li,Ri] 中第一个大于等于 Xi 的元素的下标,即满足 Li≤j≤Ri,Aj≥Xi 的最小的 j;如果 Li 到 Ri 中的没有任何 j 满足条件,则输出 −1。
数据范围
- 1≤N,Q≤106
- 1≤Ai≤109
- 1≤Ti≤4
- 1≤Pi≤N(Ti=1)
- 1≤Xi≤109(Ti=1,4)
- 1≤Li≤Ri≤N(Ti=2,3,4)
输入格式
对于每个输入文件,格式如下:
N Q
A1 A2 ⋯ AN
Query1
Query2
⋮
QueryQ
对于每个 Queryi 格式如下:
若 Ti=1:
Ti Pi Xi
若 Ti=2,3:
Ti Li Ri
若 Ti=4:
Ti Xi Li Ri
输出格式
对于每个 Ti=3,4 的查询,在单独的一行输出答案。
输入输出样例
输入#1
6 7 7 1 3 5 2 5 3 1 6 4 3 2 5 1 6 9 2 3 5 4 3 2 5 3 1 6 4 10 3 6
输出#1
7 3 4 9 -1
输入#2
17 11 18 10 12 7 1 12 9 3 6 13 11 7 1 13 11 5 20 3 10 14 2 1 16 4 17 1 12 1 9 12 1 13 3 1 17 14 4 6 4 13 1 3 11 3 13 16 4 19 11 15 4 12 8 15
输出#2
13 -1 4 18 -1 9
说明/提示
样例 1:
- (A1,A2,A3,A4,A5,A6)=(7,1,3,5,2,5) 的最大值为 7,故输出 7。
- (A2,A3,A4,A5)=(1,3,5,2) 中第一个大于等于 3 的元素为 A3=3,故输出 3。
- 将 A6 的值修改为 9,此时数组 A=(7,1,3,5,2,9)。
- 交换 A3 和 A5 的值,此时数组 A=(7,1,2,5,3,9)。
- (A2,A3,A4,A5)=(1,2,5,3) 中第一个大于等于 3 的元素为 A4=5,故输出 4。
- (A1,A2,A3,A4,A5,A6)=(7,1,2,5,3,9) 中的最大值为 9,故输出 9。
- (A3,A4,A5,A6)=(2,5,3,9) 中不存在大于等于 10 的数字,故输出 −1。