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

Конусное расстояние

Конусное расстояние

Конус расположен в трехмерном пространстве так, что его основание радиуса \textbf{r} лежит в плоскости \textbf{z} = \textbf{0} с центром в (\textbf{0},\textbf{0},\textbf{0}). Вершина конуса расположена в (\textbf{0}, \textbf{0}, \textbf{h}). На его поверхности заданы две точки в конусных координатах. Конусной координатой точки \textbf{p} называется пара чисел (\textbf{d}, \textbf{A}), где \textbf{d} - расстояние от вершины конуса до точки \textbf{p}, а \textbf{A} (\textbf{A} < \textbf{360}) - угол в градусах между плоскостью \textbf{y} = \textbf{0} и плоскостью, проходящей через точки (\textbf{0},\textbf{0},\textbf{0}), (\textbf{0},\textbf{0},\textbf{h}) и \textbf{p}, считая против часовой стрелки от направления оси \textbf{x}. \includegraphics{https://static.e-olymp.com/content/63/6389b87c766eb6bfc1ced600a3ab9dca6efbfb0a.jpg} На поверхности конуса заданы две точки \textbf{p_1} = (\textbf{d_1}, \textbf{A_1}) и \textbf{p_2} = (\textbf{d_2}, \textbf{A_2}). Найти кратчайшее расстояние между \textbf{p_1} и \textbf{p_2}, измеряемое по поверхности конуса. \InputFile Каждая строка является отдельным тестом и содержит \textbf{6} действительных чисел: \textbf{r}, \textbf{h}, \textbf{d}_1, \textbf{A}_1, \textbf{d}_2 и \textbf{A}_2. \OutputFile Для каждого теста в отдельной строке вывести кратчайшее расстояние между точками \textbf{p_1} и \textbf{p_2} по поверхности конуса. Расстояние выводить с \textbf{2} десятичными знаками.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
3.0 4.0 2.0 0.0 4.0 0.0
3.0 4.0 2.0 90.0 4.0 0.0
6.0 8.0 2.14 75.2 9.58 114.3
3.0 4.0 5.0 0.0 5.0 90.0
Выходные данные #1
2.00
3.26
7.66
4.54