На числовой прямой расположены $$$n$$$ городов, $$$i$$$-й город находится в точке $$$a_i$$$. Координаты городов заданы в порядке возрастания, т. е. $$$a_1 < a_2 < \dots < a_n$$$.
Расстояние между двумя городами $$$x$$$ и $$$y$$$ равно $$$|a_x - a_y|$$$.
Для каждого города $$$i$$$ определим ближайший город $$$j$$$ как город, для которого расстояние между $$$i$$$ и $$$j$$$ не больше, чем расстояние между $$$i$$$ и каждым другим городом $$$k$$$. Например, если города расположены в точках $$$[0, 8, 12, 15, 20]$$$, то:
Города расположены таким образом, что для каждого города ближайший город уникален. Например, невозможно, чтобы города находились в точках $$$[1, 2, 3]$$$, так как это означало бы, что у города $$$2$$$ два ближайших города ($$$1$$$ и $$$3$$$), оба на расстоянии $$$1$$$.
Вы можете перемещаться между городами. Предположим, что вы находитесь в городе $$$x$$$. Тогда вы можете выполнить одно из следующих действий:
Вам даны $$$m$$$ запросов. В каждом запросе вам будут даны два города, и вам нужно вычислить минимальное количество монет, которое придется потратить, чтобы переместиться из одного города в другой.
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
Каждый набор входных данных задается в следующем формате:
Дополнительные ограничения на входные данные:
Для каждого запроса выведите одно целое число — минимальное количество монет, которое придется потратить.
150 8 12 15 2051 41 53 43 25 1
3 8 1 4 14
Рассмотрим первые два запроса в примере из условия:
Название |
---|