Вам задана перестановка $$$p_1, p_2, \dots, p_n$$$. Вам необходимо ответить на $$$q$$$ запросов. Каждый запрос представляет из себя пару $$$(l_i, r_i)$$$ и Вам необходимо посчитать $$$f(l_i, r_i)$$$.
Пусть $$$m_{l, r}$$$ — это позиция максимума в подотрезке $$$p_l, p_{l+1}, \dots, p_r$$$.
Тогда, $$$f(l, r) = (r - l + 1) + f(l, m_{l,r} - 1) + f(m_{l,r} + 1, r)$$$ если $$$l \le r$$$ либо $$$0$$$ в противном случае.
В первой строке заданы два целых числа $$$n$$$ и $$$q$$$ ($$$1 \le n \le 10^6$$$, $$$1 \le q \le 10^6$$$) — длина перестановки $$$p$$$ и количество запросов.
Во второй строке заданы $$$n$$$ попарно различных целых чисел $$$p_1, p_2, \dots, p_n$$$ ($$$1 \le p_i \le n$$$, $$$p_i \neq p_j$$$ for $$$i \neq j$$$) — перестановка $$$p$$$.
В третьей строке заданы $$$q$$$ целых чисел $$$l_1, l_2, \dots, l_q$$$ — первые половины запросов.
В четвертой строке заданы $$$q$$$ целых чисел $$$r_1, r_2, \dots, r_q$$$ — вторые половины запросов.
Гарантируется, что $$$1 \le l_i \le r_i \le n$$$ для всех запросов.
Выведите $$$q$$$ целых чисел — значения $$$f(l_i, r_i)$$$ для соответствующих запросов.
4 5 3 1 4 2 2 1 1 2 1 2 3 4 4 1
1 6 8 5 1
Разбор запросов:
Название |
---|