问题 3500 --线段树rmq2

3500: 线段树rmq2

时间限制: 1 Sec  内存限制: 256 MB
提交: 11  解决: 8
[提交][状态][讨论版][命题人:]

题目描述

给定一个长度为n的整数序列,有以下三种操作

1、给定一个区间,求这个区间内的最大值

2、给定一个区间,求这个区间内的最小值

3、给定一个编号,将这个编号的值修改为x

输入

第一行包含两个整数n,m,分别表示该数列数字的个数和操作的总个数。

第二行包含n个用空格分隔的整数,其中第i个数字表示数列第i项的初始值ai。

接下来m行每行包含2个整数,表示一个操作,具体如下:

1、1 x y:输出区间[x,y]内的最小值

2、2 x y:输出区间[x,y]内的最大值

3、3 v x: 将编号v的值修改为x

输出

输出操作1和操作的2的结果,换行输出

样例输入

5 5
1 2 3 4 5
1 1 3
2 1 3
1 1 5
3 1 6
1 1 5

样例输出

3
1
5
6

提示


对于30%的数据:1<=n,m<=100



对于60%的数据:1<=n,m<=1000



对于100%的数据:1<=n,m<=10^5 1<=ai<=10^9

来源

[提交][状态]