Королівська битва#11626

Королівська битва

1 секунда
128 мегабайтів
Середня

Ігри Battle Royale зараз на піку популярності, і Gamers Concealed Punching Circles (GCPC) є найулюбленішою серед них. Події гри відбуваються у просторі, який можна уявити як двовимірну площину. Переміщення та позиціонування є важливими елементами гри, але досягнення потрібного місця може бути небезпечним. Ви впевнені у своїх здібностях протистояти іншим гравцям, проте, поки Ви прямуєте до місця призначення, гра приховує дві загрози:

Ви хочете переміститися з одного місця на карті в інше, але прямий шлях до пункту призначення заблокований червоним колом, тому Вам потрібно знайти спосіб його обійти. Чи зможете Ви знайти найкоротший шлях, який дозволить уникнути всіх небезпек, не виходячи за межі синього кола і не входячи в червоне коло? Дотик до меж кіл дозволений, якщо Ви їх не перетинаєте.

Вхідні дані

Перший рядок містить два цілі числа x_c, y_c, що вказують Ваше поточне місцезнаходження.

Другий рядок містить два цілі числа x_d, y_d, що вказують пункт призначення.

У наступному рядку задаються центр x_b, y_b і радіус r_b синього кола.

У наступному рядку задаються центр x_r, y_r і радіус r_r червоного кола.

Усі координати мають абсолютне значення не більше , а 1\le r_b, r_r\le 1000. Червоне коло знаходиться строго всередині синього кола. Ваше поточне місцезнаходження і пункт призначення знаходяться строго всередині синього кола і строго за межами червоного кола, а прямий шлях між ними заблокований червоним колом.

Вихідні дані

Виведіть довжину найкоротшого шляху, який не виходить за межі синього кола і не входить у червоне коло. Точність повинна бути не більше 10^{-7} за відносною або абсолютною похибкою (яка менша).

Приклади

Приклад 1

Loading
Loading