eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Робот

Робот

Роботу нужно пройти по плоскости из точки \textbf{A} в точку \textbf{B}. Пройти по прямой не всегда возможно из-за препятствий. Требуется написать программу, вычисляющую минимальную длину пути робота из точки \textbf{A} в точку \textbf{B}. Будем считать размеры робота пренебрежимо малыми по сравнению с преодолеваемым расстоянием и размером препятствий. Будем считать, что все препятствия представлены набором отрезков на плоскости. Эти отрезки робот не может пересекать во внутренних точках, но он может проходить через концы отрезков, а также может ходить вдоль отрезка. \InputFile Первая строка содержит одно целое число \textbf{N} --- количество отрезков-препятствий (\textbf{0} <= \textbf{N} <= \textbf{100}). Затем идут \textbf{N} строк по четыре целых числа \textbf{X_1}, \textbf{Y_1}, \textbf{X_2} и \textbf{Y_2} в каждой. Это координаты концов соответствующего отрезка. Последние две строки содержат координаты \textbf{X} и \textbf{Y} точек \textbf{A} и \textbf{B}. Гарантируется, что все координаты по модулю не превосходят \textbf{1000}, а также ни один из концов отрезков не принадлежит другому отрезку. Начальная и конечная точки пути различны и не принадлежат ни одному отрезку. \OutputFile Выведите одно число --- длину кратчайшего пути из точки \textbf{A} в точку \textbf{B} с четырьмя знаками после десятичной точки. Если искомого пути не существует, то выведите \textbf{--1}.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
1
5 -2 5 3
10 0
0 0
Выходные данные #1
10.7703
Автор Павел Кузнецов