EduBrick

L. Катая по величине на отрезке

4000 мс · 512 МБ · всё или ничего

Дан массив, который не меняется. Для каждого запроса (l,r,k)(l, r, k) выведите kk-й по возрастанию элемент отрезка [l,r][l, r].

Дерево слияний из предыдущей задачи это тоже умеет — двоичным поиском по ответу поверх запроса «сколько меньше», за O(log⁡3n)O(\log^3 n). Здесь разберём способ за один логарифм.

Формат ввода

В первой строке nn и qq (1≤n,q≤1051 \le n, q \le 10^5). Во второй — nn чисел aia_i (0≤ai≤1090 \le a_i \le 10^9). Далее qq строк по три числа ll, rr, kk (1≤l≤r≤n1 \le l \le r \le n, 1≤k≤r−l+11 \le k \le r - l + 1).

Формат вывода

Для каждого запроса выведите kk-й по возрастанию элемент отрезка на отдельной строке.

Примеры

ввод
5 3
1 3 2 5 4
1 5 1
1 5 5
2 4 2
вывод
1
5
3
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.