Автор: | А. Баранов, Д. Горячкин | Ограничение времени: | 1 сек | |
Входной файл: | input.txt | Ограничение памяти: | 256 Мб | |
Выходной файл: | output.txt |
Начинающий программист Вася увлекается робототехникой и посещает турниры, посвященные этой тематике. В рамках каждого турнира перед участниками ставится набор задач, для решения которых требуется писать программу для специализированного робота. Одной из таких задач Вася захотел с вами поделиться.
Имеется манипулятор, состоящий из 2-х звеньев (костей), управляемых моторами. Моторы могут поворачиваться на некоторый положительный угол, заданный в радианах. Требуется, получив на вход координаты (x0, y0), определить, на сколько радиан нужно повернуть каждый из моторов, чтобы манипулятор занял указанную позицию. Начало отсчета координат — крепление первой кости. Длины и углы поворота каждой из костей ограничены.
Входной файл содержит набор вещественных чисел:
R1, R2 — размеры 1-й и 2-й кости;
F1, F2 — максимальный раствор угла для каждой из костей;
x0, y0 — координаты назначения.
Выходной файл должен содержать вещественные значения φ1, φ2 — углы поворота для каждого из моторов, указанные с точностью не менее 5 знаков после запятой.
Если решение не может быть найдено, вывести -1.
Все тесты подобраны таким образом, чтобы снизить влияние погрешности машинного округления на результат решения.
10 > R1 ≥ R2 > 0, π > (F1, F2) > 0,
x0 ∈ [ − 10, 10], y0 ∈ [0, 10]
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|