Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

Пушка

(Время: 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))

[Обсуждение] [Все попытки] [Задача]


Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru