编程题
### 问题描述 给你一个长度为 $n$ 的数列 $a_1, a_2, ..., a_n$ 和 $m$ 次操作,每次操作有以下三种: 1. 修改:给定 `l, r, x`,将区间 $[l, r]$ 内的所有数加上 $x$。 2. 赋值:给定 `l, r, x`,将区间 $[l, r]$ 内的所有数赋值为 $x$。 3. 查询:给定 `l, r, y`,查询区间 $[l, r]$ 的第 $y$ 小的值(如果有多个相同数字需要计算多次)。 请你实现这三种操作。 ### 输入格式 第一行包含两个整数 $n$ 和 $m$,表示数列的长度和操作的次数。 第二行包含 $n$ 个整数 $a_1, a_2, ..., a_n$。 接下来的 $m$ 行,每行描述一个操作,格式如下: - `1 l r x`:表示一个修改操作。 - `2 l r x`:表示一个赋值操作。 - `3 l r y`:表示一个查询操作。 ### 输出格式 对于每个查询操作,输出一个整数,表示查询的结果。 ### 样例输入 ``` 5 3 1 2 3 4 5 1 1 3 2 2 3 5 1 3 1 5 4 ``` ### 样例输出 ``` 3 ``` ### 样例说明 在第一次操作后,数列变为:$[3, 4, 5, 4, 5]$。 在第二次操作后,数列变为:$[3, 4, 1, 1, 1]$。 第三次操作查询区间 $[1, 5]$ 的第 $4$ 小的值为 $3$。 ### 测评数据规模 对于 $40$% 的数据,$1\le n, m \leq 10$。 对于 $80$% 的数据,$1\le n, m \leq 100$。 对于 $100$% 的数据,$1 \leq n, m \leq 10^3$,$-10^4 \leq a_i, x \leq 10^4$,$1 \leq l \leq r \leq n$,$1\le y\le r-l+1$。
查看答案
赣ICP备20007335号-2