|
Пушка
(Время: 1 сек. Память: 16 Мб Сложность: 20%)
Пусть шарик преодолевает маршрут по ломаной ABD так, как показано на рисунке. Первоначально нам известны координаты точек O(0,0), A(0,R) и D(X,Y). Требуется вычислить длину отрезка AB.
Опустим перпендикуляр из точки D на кирпичную стену в точку C. Рассмотрим треугольники ABO и CBD. У них углы OAB и DCB – прямые, а углы OBA и DBC равны, т.к. угол падения равен углу отражения. Поэтому можно утверждать, что рассматриваемые треугольники подобны согласно первому признаку подобия треугольников. Из этого следует, что стороны треугольников пропорциональны, а именно AB/BC=AO/CD=OB/BD. Откуда следует, что AB/AO=BC/CD=(AC-AB)/CD. Обозначим за S искомое расстояние, соответствующее длине AB, поскольку AO=R, CD=R-Y и АС=|X|, то мы можем определить значение S:
Используя данную формулу, можно легко записать конечный алгоритм решения задачи:
read(r,x,y)
write(r*abs(x)/(2*r-y))
| |