EduBrick

Загнать в коридор

3000 мс · 256 МБ · всё или ничего

Дан массив. Для каждого запроса (l,r,x,y)(l, r, x, y) выведите наименьшее число операций «плюс один» и «минус один», после которых все элементы отрезка [l,r][l, r] окажутся в промежутке [x,y][x, y].

Формат ввода

В первой строке — числа nn и qq (1≤n,q≤1051 \le n, q \le 10^5). Во второй — nn чисел (1≤ai≤1091 \le a_i \le 10^9). В следующих qq строках — четвёрки ll, rr, xx, yy (1≤l≤r≤n1 \le l \le r \le n, 1≤x≤y≤1091 \le x \le y \le 10^9).

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

На каждый запрос выведите наименьшее число операций.

Примеры

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