Олимпиадный тренинг

Задача . A. Абонент временно недоступен


Поликарп живет на координатной оси \(Ox\) и путешествует из точки \(x=a\) в \(x=b\). Он двигается равномерно прямолинейно со скоростью одна единица расстояния в минуту.

На оси \(Ox\) в точке \(x=c\) находится базовая станция оператора сотовой связи. Известно, что радиус её покрытия составляет \(r\). Таким образом, если абонент находится на расстоянии меньшем или равном \(r\) от точки \(x=c\), то он находится в зоне покрытия сети, иначе — нет. Базовая станция может находится как на пути следования Поликарпа, так и вне его.

Выведите время в минутах, в течение которого Поликарп не будет находится в зоне покрытия сети, при прямолинейном равномерном движении из \(x=a\) в \(x=b\). Его скорость движения — одна единица расстояния в минуту.

Входные данные

В первой строке записано положительное целое число \(t\) (\(1 \le t \le 1000\)) — количество наборов входных данных в тесте. Далее записаны \(t\) наборов входных данных.

Описание каждого набора входных данных составляет одну строку, которая содержит четыре целых числа \(a\), \(b\), \(c\) и \(r\) (\(-10^8 \le a,b,c \le 10^8\), \(0 \le r \le 10^8\)) — координаты начальной и конечной точки пути, базовой станции и её радиус покрытия, соответственно.

Любые из чисел \(a\), \(b\) и \(c\) могут совпадать (как любая пара, так и даже все три числа). Базовая станция может находится как на пути следования Поликарпа, так и вне его.

Выходные данные

Выведите \(t\) чисел — ответы на заданные наборы входных данных в порядке их записи в тесте. Каждый ответ является целым числом — количество минут, в течение которых Поликарп будет недоступен по сотовому телефону во время своего движения.

Примечание

Следующая картинка иллюстрирует первый набор входных данных примера.

Поликарп идёт из \(1\) в \(10\). Желтая область показывает зону покрытия вышки радиуса покрытия \(1\), которая расположена в точке \(7\). Зеленая область показывает ту часть пути, когда Поликарп находится вне зоны покрытия.

Примеры
Входные данныеВыходные данные
1 9
1 10 7 1
3 3 3 0
8 2 10 4
8 2 10 100
-10 20 -17 2
-3 2 2 0
-3 1 2 0
2 3 2 3
-1 3 -2 2
7
0
4
0
30
5
4
0
3

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя