Задачи
Вращение вокруг
Вращение вокруг
Рассмотрим стержень, вращающийся по часовой стрелке, как будто крутящаяся дубинка движется по плоской поверхности, окруженной многоугольной стеной (см. \textit{\textbf{Рисунок 1}}).
\includegraphics{https://static.e-olymp.com/content/ba/ba0ece2a623f0c77437cdf1314601a7cf85ae1c3.jpg}
\textit{\textbf{Рисунок 1}}. Стержень, вращающийся в многоугольнике
Изначально один конец стержня (назовем его "\textbf{конец A}") находится в (\textbf{0}, \textbf{0}), а другой конец (который назовем "\textbf{конец B}") в (\textbf{0}, \textbf{L}), где \textbf{L} - длина стержня. Изначально стержень касается стены только в точке \textbf{A}.
Стержень вращается, фиксируя точку касания как центр вращения. Центр меняется, как только новая точка коснется стены.
Вам следует вычислить координаты конца \textbf{A}, когда стержень сделает \textbf{R }полных оборотов.
\includegraphics{https://static.e-olymp.com/content/36/36fa20fba88ac68d38475da99a35a345a353d4bb.jpg}
\textit{\textbf{Рисунок 2}}. Примеры поворотов стержня
На \textit{\textbf{Рисунке 2}} показано несколько примеров. В случаях (\textbf{D}) и (\textbf{E}) стержень застрянет преждевременно (не сможет дальше вращаться по часовой стрелке независимо от того какую точку касания выбрать в качестве центра) до выполнения \textbf{R} вращений. В таких случаях следует вывести координаты конца \textbf{A} в этих (застрявших) позициях.
Считайте, что если длина стержня \textbf{L} изменяется на \textbf{ε} (\textbf{|ε}| < \textbf{0.00001}), то координаты (\textbf{x}, \textbf{y}) конечной точки не должны измениться более чем на \textbf{0.0005}.
\InputFile
Входные данные состоят из нескольких тестов. Количество тестов не более \textbf{100}. В конце входных данных находится строка "\textbf{0 0 0}".
Формат каждого теста следующий:
\textbf{L R N}
\textbf{X_1 Y_1}
\textbf{X_2 Y_2}
\textbf{...}
\textbf{X_N Y_N}
\includegraphics{https://static.e-olymp.com/content/49/49270e28ebc371c9e6e548fe5edf6353526f0ecb.jpg}
\textbf{L} - длина стержня. Стержень вращается на \textbf{2R} радиан (если не застрянет преждевременно). \textbf{N} - количество вершин многоугольника.
Вершины многоугольника расположены в порядке обхода против часовой стрелки. Считайте, что многоугольник простой, то есть его граница не пересекает и не касается самой себя.
\textbf{N}, \textbf{X_i} и \textbf{Y_i} - целые числа; \textbf{R} и \textbf{L} - десятичные дроби. Их границы следующие: \textbf{1.0 }≤ \textbf{L} ≤ \textbf{500.0}, \textbf{1.0 }≤ \textbf{R }≤ \textbf{10.0}, \textbf{3} ≤ \textbf{N }≤ \textbf{100}, \textbf{-1000 }≤ \textbf{X_i} ≤ \textbf{1000}, \textbf{-1000} ≤ \textbf{Y_i} ≤ \textbf{1000}, \textbf{X_1} ≤ \textbf{-1}, \textbf{Y_1} = \textbf{0}, \textbf{X_2} ≥ \textbf{1}, \textbf{Y_2 = 0}.
\OutputFile
Для каждого теста в одной строке вывести \textbf{x}- и \textbf{y}- координаты конечного положения конца \textbf{A}, разделяя их пробелом. Значения могут содержать ошибку не более \textbf{0.001}. После десятичной точки можно выводить любое количество знаков.
Приведенные примеры относятся к случаям на \textit{\textbf{Рисунке 2}}. Для удобства на \textit{\textbf{Рисунке 3}} показана анимация и фотографическое воспроизведение случая (\textbf{C}).
\includegraphics{https://static.e-olymp.com/content/7b/7b13b2e55ad078ef0bf7a0d5d7037554d9381312.gif}
\includegraphics{https://static.e-olymp.com/content/1e/1e244d4685cf610b1ebf501717ded1cb8a1f0ddc.jpg}
\textit{\textbf{Рисунок 3}}. Анимация и фотографическое воспроизведение случая (\textbf{C})
Входные данные #1
4.0 2.0 8 -1 0 5 0 5 -2 7 -2 7 0 18 0 18 6 -1 6 4.0 2.0 4 -1 0 10 0 10 12 -1 12 4.0 1.0 7 -1 0 2 0 -1 -3 -1 -8 6 -8 6 6 -1 6 4.0 2.0 6 -1 0 10 0 10 3 7 3 7 5 -1 5 5.0 2.0 6 -1 0 2 0 2 -4 6 -4 6 6 -1 6 6.0 1.0 8 -1 0 8 0 7 2 9 2 8 4 11 4 11 12 -1 12 0 0 0
Выходные данные #1
16.0 0.0 9.999999999999998 7.4641016151377535 0.585786437626906 -5.414213562373095 8.0 0.0 6.0 0.0 9.52786404500042 4.0