U537778 区间修改+区间最值

题目描述

给你一个长度为 $n$ 的数列 $a_1, a_2, \ldots, a_n$,接下来有 $q$ 次操作,操作分为如下两种类型: - $1\ l\ r\ x$:将数列 $a$ 中所有下标在 $[l, r]$ 范围内的元素数值全部修改为 $x$,即对于任意 $l \le i \le r$,令 $a_i \leftarrow x$ - $2\ l\ r$:查询数列 $a$ 中所有下标在 $[l, r]$ 范围内的所有元素的数值最大值,即查询 $\max\limits_{l \le i \le r} \{ a_i \}$ 请你依次执行所有操作,并且对于每各查询操作,输出对应的结果。

输入格式

第一行,一个整数 $n(1 \le n \le 2 \cdot 10^5)$,表示数列长度。 第二行,$n$ 个整数 $a_1, a_2, \ldots, a_n(1 \le a_i \le 10^9)$,表示初始时数列中每个元素的数值。 第三行,一个整数 $q(1 \le q \le 2 \cdot 10^5)$,表示操作次数。 接下来 $q$ 行,每行包含一个操作,形如 $1\ l\ r\ x$ 或 $2\ l\ r$(其中 $1 \le l \le r \le n, 1 \le x \le 10^9$)。

输出格式

对于每次查询操作 $2\ l\ r$,输出一行,包含一个整数,表示 $\max\limits_{l \le i \le r} \{ a_i \}$ 的结果。

说明/提示

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