Главное меню

ПробкаГлеб оказался в автомобильной пробке. Применив зоркий глаз, Глеб насчитал, что перед ним стоят

Автор Zis, Март 19, 2024, 00:24

« назад - далее »

Zis

Как на это ответить. Пробка
Глеб оказался в автомобильной пробке. Применив зоркий глаз, Глеб насчитал, что перед ним стоят п машин. Также он знает, что зеленый свет горит ровно а секунд и за каждую секунду зеленого света с пробки успевают уехать ровно в машин. Красный свет горит ровно с секунд.
Глеб хочет узнать, сколько еще секунд он будет стоять в пробке, если прямо сейчас загорится зеленый свет.
Формат входных данных
Первая строка входных данных содержит одно целое число п (1 ≤ n ≤10) машин, стоящих перед Глебом. количесТВО
Вторая строка входных данных содержит три целых числа а, ви с (1 ≤ a, b, c ≤ 10°).
Формат выходных данных
Выведите единственное число сколько секунд придется стоять Глебу в пробке.
Обратите внимание, что ответ в этой задаче может быть довольно большим и не помещаться в 32-битные типы данных. Рекомендуется использовать 64-битный тип данных, например long long B C++, long в Java или int64 в Pascal.
Ввод:
5
4 2 3
Вывод:
3

Ввод:
11
4 1 3
Вывод:
18

Ввод:
2
2 1 5
Вывод:
8

Ввод:
2
1 2 5
Вывод:
7

Ahina

Для решения задачи, нужно вычислить количество секунд, которое займет проезд всех машин, стоящих перед Глебом. Это можно сделать, разделив количество машин на количество машин, которые успевают проехать за одну секунду зеленого света, и округлив результат вверх до целого числа. Затем нужно умножить это число на длительность зеленого света и добавить время, которое Глебу придется ждать на красный свет.

Для примера, если перед Глебом стоит 5 машин, зеленый свет горит 4 секунды, и за каждую секунду зеленого света с пробки успевают уехать 2 машины, а красный свет горит 3 секунды, то Глебу придется стоять в пробке еще:

t=⌈5/2⌉*4+3=13 секунд.

Таким образом, ответ на задачу будет равен 3 секунды для первого примера, 18 секунд для второго примера, 8 секунд для третьего примера, и 7 секунд для четвертого примера.

-------
def time_in_queue_recursive(n, a, b, c, total_time=0):
    if n  0 else 0
    return time_in_queue_recursive(n, a, b, c, total_time)
n = int(input()) +1
a, b, c = map(int, input().split())
result = time_in_queue_recursive(n, a, b, c)
print(result)