Задача 11 Цикл работы светофора такой: красный (горит а секунд). красный с жёлтым (b секунд), зелёный (с секунд), жёлтый (b секунд). Затем последовательность повторяется. Только что включился красный. Нужно посчитать, сколько времени горит каждый свет, если известно, что светофор работал N секунд. Обратите внимание, что красный и жёлтый горят дважды за цикл: один раз вместе с другим цветом, ВТОРОЙ ра3 отдельно. Время, когда на светофоре горят два сигнала - красный и жёлтый - «засчитывается>> обоим сигналам. Даны числа a, b, c, N. Выведите, сколько всего секунд горел каждый сигнал светофора за N секунд его работы. Ввод Вывод 20 5 25 120 60 20 50 Примечание: полный цикл светофора длится 20+5+25+5=55 секунд. Светофор отработал два полных цикла, а потом ещё 120-55х2=10 секунд горел красный. В каждом цикле красный горим 20+5=25 секунд, жëлмый горим 10 секунд, а зелёный 25 секунд. Имого, красный горел 25х2+10=60 секунд, жëлмый горел 10х2=20 секунд и зелёный горел 25х2=50 секунд. 1 2 3 4 5 6 7 8 9 full_cycle = a + b + c + b 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 a = int(input()) 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 b= int(input()) int(input()) N = int(input()) cycle_count = N // full_cycle red = (a + b) * cycle_count yellow = (b * 2) * cycle_count green = c * cycle_count add_time = N - full_cycle * cycle_count if add_time > 0: if add time - (a + b) > 0: Тесты if add_time - (a + b) - (b * 2) > 0: else: print (red) Ввод 1 2 9 3 21 4 133 red += a + b 45 yellow += b * 2 else: green += add_time - (a + b) - print(yellow) red += a + b yellow = add_time - (a + b) red += add_time print (green) 1 С 4 Вывод 1 103 2 18 21 FWN 3 5 4 ... 9 > Неверный вывод Правильный вывод 103 22 21 1 WNH b * 2) 2 3
Answers & Comments
Ответ:
Теперь должно быть верно!
Объяснение:
Python 3.10
a = int(input())
b = int(input())
c = int(input())
N = int(input())
full_cycle = a + b + c + b
cycle_count = N // full_cycle
red = (a + b) * cycle_count
yellow = (b * 2) * cycle_count
green = c * cycle_count
add_time = N - full_cycle * cycle_count
if add_time > 0:
if add_time - a > 0:
if add_time - a - b > 0:
if add_time - a - b - c > 0:
red += a + b
yellow += b + (add_time - a - b - c)
green += c
else:
red += a + b
yellow += b
green += add_time - a - b
else:
red += a + (add_time - a)
yellow += add_time - a
else:
red += add_time
print(red)
print(yellow)
print(green)