Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Олимпиада Яндекс. Лицея, помоги понять алгоритм, пожалуйста.

Василий Петросян Ученик (91), на голосовании 4 года назад
Светофор горит зелёным светом t1 секунд, красным - t2, затем снова загорается зелёный. В момент, когда загорелся зелёный свет, водитель Илья находился на расстоянии P метров от светофора и ехал в его сторону со скоростью V метров в секунду. Если Илья не успевает проехать на зелёный сигнал, он должен полностью остановиться у светофора. Помогите Илье определить, сможет ли он проехать на зелёный свет без остановки, а если нет - за сколько метров до светофора ему нужно начинать тормозить, а также сколько секунд он прождёт у светофора, пока снова загорится зелёный свет. Ускорение, с которым тормозит Илья, равняется A.

Формат ввода
В первой входной строке два числа - t1 и t2, время, которое держатся зелёный и красный сигналы соответственно. Во второй строке записаны три числа - расстояние P до светофора, скорость V и ускорение A. Все числа целые, не превышающие 2*109.

Формат вывода
Программа должна вывести слово Pass, если Илья сможет проехать светофор без остановки. Если он вынужден остановиться, программа должна вывести два числа - расстояние до светофора, где нужно начинать торможение, и время ожидания нового зелёного сигнала. Гарантируется, что в случае необходимости Илья успеет затормозить до светофора. В этом случае каждое число нужно вывести с тремя знаками после запятой.

Примечания
Скорость во время торможения выражается как V0 - a * t, а пройденный путь как V0 * t - (A * t2) / 2, где t - время, прошедшее с момента начала торможения. В момент, когда загорается красный, Илья уже не может проехать светофор.

ПРИМЕРЫ -
Пример 1
Ввод:
30 20
145 5 3
Вывод:
Pass

Пример 2
Ввод:
10 70
200 20 4
Вывод:
50.000 67.500
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (424872) 4 года назад
Считаешь время без остановки, если оно больше t1 - чувак должен начать тормозить. Это основное ветвление.
Дальше начинаешь расчеты по школьным формулам:
t=v0/a
s=v0t-at^2/2

Самое сложное - сколько ему надо будет стоять. Потому что к моменту остановки уже опять может быть зеленый. Продумай этот момент.
Похожие вопросы