Автомобиль движется из точки А в точку Б со скоростью v метров в секунду. Действие происходит на оси X. На расстоянии d метров от A находятся светофоры. Начиная с момента 0, в течение первых g секунд горит зеленый свет, затем в течение следующих r секунд горит красный свет, затем снова горит зеленый свет в течение g секунд и т. Д.
Автомобиль может быть мгновенно ускорен с 0 до v, и наоборот, может мгновенно замедляться с v до 0. Предположим, что он мгновенно пропускает светофор на зеленый свет. Если автомобиль приближается к светофору в тот момент, когда только что включился красный свет, он не успевает проехать. Но если он приближается к светофору в тот момент, когда только что загорелся зеленый свет, он может двигаться. Машина покидает точку А в момент времени 0.
Какое минимальное время для проезда автомобиля из пункта А в пункт Б без нарушения правил дорожного движения?
Input
целые числа l, d, v, g, r (1 ≤ l, d, v, g, r ≤ 1000, d
решение
if(g*v>d)
ans = l/v // i got it
else
ceil(d/v/g+r)*(g+r)+(l-d)/v // i am not getting Please help
Пример-> предположим, что l = 5, d = 4, v = 1, g = 2, r = 1
При t = 0 автомобиль начинается с $ A $
При t = 2 свет становится красным, но автомобиль находится далеко от света, поэтому без проблем продолжайте движение
При t = 3 свет снова становится зеленым на $ 2 $ sec (до $ t = 5 $)
При t = 4 свет еще зеленый и мы достигаем света
Примечание-> мы пересекаем светофор, не волнуйтесь
При t = 5 мы достигаем в точке B
Но верный ответ = 7, который не является минимальным, где я делаю неправильно?
Вышеупомянутый подход был использован красным кодером, и я также включил ссылку на его решение ниже.
Помогите, пожалуйста, мне грустно. Я пытаюсь найти правильную логику за 3 дня.
Вот вы, люди, моя последняя надежда.
ссылка о проблеме проблема b
Принятая ссылка решения красного кодера
Примечание-> вышеупомянутое принятое решение, дающее 7 в качестве вывода. Но я думаю, что это должно быть 5. Так что это не может быть неправильно, так как codeforces принял это.