U187874 动态峰值问题

题目背景

`Mr.Wang` : 谁来解决这个困难的问题? `YJY` : 这个题太水了,我的小弟都能解决. 于是这个拯救不了世界的重担就落在了你的身上.

题目描述

有 $n$ 个人排成一列, 每个人都有一个能力值 $A_i$,`Mr.Wang` 将会对这些人进行一些操作: 操作一,选取一个指定位置的人,将其替换为另一个人. 操作二,询问 $[l,r]$ 内 $A_i$ 的最大值. 因为 `Mr.Wang` 没有很多人手,所以操作一最多有 $50$ 次.

输入格式

第一行两个整数 $n,q$ ,代表有 $n$ 个人 和 $q$ 次操作. 第二行 $n$ 个整数,第 $i$ 个为 $A_i$ 的值. 接下来的 $q$ 行: 输入一个整数 $op$; 若 $op=1$ , 输入两个整数 $a,b$ ,代表将 $a$ 处的人换为一个能力值为 $b$ 的人. 否则,输入两个整数 $l,r$ ,你需要输出 $[l,r]$ 内能力值最高的人.

输出格式

对于每个操作二,输出一行一个整数,代表区间内能力值最高的人.如果区间内无人,输出 $0$.

说明/提示

**本题输入输出量极大,请采用较快的读入方式。** |子任务 |数据限制 |分值 | | :-----------: | :-----------: | :-----------: | |subtask 1 | $n\le 15,q\le20$ | 5 | | subtask 2 | $n\le 300,q\le 3\times 10^4$ | 15 | | subtask 3 | $n\le 10^3 ,q\le 6\times 10^5$ | 35 | | subtask 4| $n\le 1.5\times 10^3,q\le 2\times 10^7$ | 45 | 保证 $0\le A_i \le 6 \times 10^4$.