Це отвір для міні-гольфу:
Зовнішня межа - це коло з радіусом 10 і центром (0,0). Внутрішня межа - це коло з радіусом 3 та центром (0,5). Трійник знаходиться на рівні (0, -8). Припустимо, м'яч - це лише точка з радіусом 0.
Динаміка балу регулюється такими правилами:
Куля спочатку потрапляє з енергією 50, і з заданим кутом.
- У декартовій системі координат кут занепадає, тому 0 ° означає прямо вправо, 90 ° - прямо вгору тощо.
Коли куля потрапляє на край внутрішнього чи зовнішнього кола, вона відскакує від кола, використовуючи закон відображення.
М'яч втрачає енергію під час руху.
За кожну одиницю землі, яку вона покриває, вона втрачає 1 одиницю енергії.
Щоразу, коли вона відбивається від стіни, вона втрачає 5 одиниць енергії.
Куля зупиняється або коли у неї не вистачає енергії, або коли вона потрапляє в отвір.
Якщо куля потрапила в стіну з <5 одиницями енергії, вона зупиняється.
Він потрапляє в отвір, якщо у нього енергія <10, коли він знаходиться в межах відстані 1 отвору, інакше він продовжує рухатися.
Виклик
Враховуючи координати xy отвору, поверніть кут, під яким можна вдарити м'яч, щоб куля потрапила в отвір (якщо такий кут існує).
Вхідні дані
Візьміть за введення координати x- і y центру отвору в будь-якій зручній формі. Введення може бути взято з STDIN (або найближчої альтернативи), параметрів командного рядка або аргументів функції.
Вихід
Роздрукуйте або поверніть кут у градусах, при якому куля може вдаритись по трійнику, щоб куля потрапила в отвір. Якщо такий кут існує, вихід повинен бути в діапазоні [0, 360), інакше вихід повинен бути -1.