Муравей и дерево

Автор:А. Кленин   Ограничение времени:2 сек
Входной файл:input.txt   Ограничение памяти:200 Мб
Выходной файл:output.txt  

Условие

Муравей находится в лесу с плоской поверхностью почвы в точке с координатами (x1, y1), и направляется в точку (x2, y2). В лесу растёт дерево, основание ствола которого имеет форму круга с центром в точке (xT, yT) и радиусом RT. Дерево, возможно, помешает муравью дойти до цели по прямой. В таком случае ему придётся обойти дерево вокруг ствола.

Требуется определить длину кратчайшего пути для муравья.

Формат входного файла

Входной файл содержит вещественные числа x1 y1 x2 y2 xT yT RT.

Формат выходного файла

Выходной файл должен содержать единственное вещественное число — длину кратчайшего пути. Абсолютная ошибка результата не должна превосходить 0.01 (т.е. следует выводить число с точностью не менее 3 знаков после запятой).

Ограничения

Все числа во входном файле находятся в диапазоне от 0 до 1000.

(x1xT)2 + (y1yT)2RT2, (x2xT)2 + (y2yT)2RT2

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
0 0 4 4 2 2 1
6.014

0.041s 0.008s 17