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

Задача . D. Барселонское расстояние


В этой задаче мы рассматриваем упрощённую модель города Барселона.

Барселона может быть представлена как плоскость, а её улицы — как прямые вида \(x = c\) и \(y = c\) для любого целого числа \(c\) (то есть, улицы представляют собой прямоугольную сетку). Однако есть кое-что, что отличает Барселону от Манхеттена, а именно, проспект, который называется Avinguda Diagonal (Диагональный проспект) и который может быть представлен на плоскости как множество точек \((x, y)\), удовлетворяющих \(ax + by + c = 0\).

Перемещаться по городу можно только по улицам, в том числе и по Диагональному проспекту. Вам даны точки \(A\) и \(B\) в Барселоне. Найдите минимальное расстояние, которое необходимо пройти, чтобы попасть в точку \(B\) из точки \(A\).

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

Первая строка содержит три целых числа \(a\), \(b\) и \(c\) (\(-10^9\leq a, b, c\leq 10^9\), at хотя бы одно из чисел \(a\) и \(b\) не равно нулю), задающих Диагональный проспект.

Следующая строчка содержит четыре целых числа \(x_1\), \(y_1\), \(x_2\) и \(y_2\) (\(-10^9\leq x_1, y_1, x_2, y_2\leq 10^9\)), задающих точки \(A = (x_1, y_1)\) и \(B = (x_2, y_2)\).

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

Найдите минимальное расстояние, которое необходимо пройти от \(A\) до \(B\). Ваш ответ будет считаться правильным, если его абсолютная или относительная ошибка не превосходит \(10^{-6}\).

Формально, пусть ваш ответ равен \(a\), а ответ жюри равен \(b\). Ваш ответ будет зачтен, если и только если \(\frac{|a - b|}{\max{(1, |b|)}} \le 10^{-6}\).

Примечание

Первый пример показан на рисунке ниже слева, второй — справа. Проспект показан синим, начало координат отмечено черной точкой.


Примеры
Входные данныеВыходные данные
1 1 1 -3
0 3 3 0
4.2426406871
2 3 1 -9
0 3 3 -1
6.1622776602

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

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