U537775 单点修改+区间最大值

题目描述

给定一个长度为 $n$ 的数列 $a_1, a_2, \ldots, a_n$。 接下来有 $q$ 次操作,操作分为如下两种类型: - $\mathtt{1\ p\ x}$:将 $a_p$ 的数值修改为 $x$; - $\mathtt{2\ l\ r}$:查询下标区间 $[l, r]$ 范围内所有元素(即 $a_l, a_{l+1}, \ldots, a_r$)的最大值。 对于每次查询操作,你需要输出对应的结果。

输入格式

第一行,一个整数 $n(1 \le n \le 2 \times 10^5)$,表示数列大小。 第二行,$n$ 个整数 $a_1, a_2, \ldots, a_n(1 \le a_i \le 10^9)$,表示初始数列中每个元素的数值。 第三行,一个整数 $q(1 \le q \le 2 \times 10^5)$,表示操作次数。 接下来 $q$ 行,每行包含依次操作,格式为: - $\mathtt{1\ p\ x}$($1 \le p \le n, 1 \le x \le 10^9$),或 - $\mathtt{2\ l\ r}$($1 \le l \le r \le n$)。

输出格式

对于每次查询操作 $\mathtt{2\ l\ r}$,输出一行,包含一个整数,表示下标区间 $[l, r]$ 范围内所有元素的最大值。

说明/提示

#### 数据规模与约定 - 对于 $30\%$ 的数据,$n,q \le 20$ - 对于 $60\%$ 的数据,$n,q \le 2000$ - 对于 $100\%$ 的数据,$1 \le n,q \le 2 \times 10^5; 1 \le a_i,x \le 10^9; 1 \le p \le n; 1 \le l \le r \le n$