var
a, b, c, N, k: integer;
begin
Readln(a,b,c,N);
k:=N div (a+b+b+c);
Writeln((a+b)*k + N mod (a+b+b+c));
Writeln((b+b)*k);
Writeln(c*k);
end.
a, b, c, n = map(int, map(input, ('',) * 4))
t = a + 2 * b + c
k, r = divmod(n, t)
x = k * (a + b) + min(r, a + b)
y = k * 2 * b + min(max(r - a, 0), b) + min(max(r - t + b, 0), b)
z = k * c + min(max(r - a - b, 0), c)
print(x, y, z)
Цикл работы светофора такой: красный (горит a секунд), красный с жёлтым (b секунд), зелёный (c секунд), жёлтый (b секунд). Затем последовательность повторяется.
Только что включился красный. Нужно посчитать, сколько времени горит каждый свет, если известно, что светофор работал N секунд.
Обратите внимание, что красный и жёлтый горят дважды за цикл: один раз вместе с другим цветом, второй раз отдельно. Время, когда на светофоре горят два сигнала — красный и жёлтый, — «засчитывается» обоим сигналам.
Даны числа a, b, c, N. Выведи, сколько всего секунд горел каждый сигнал светофора за N секунд его работы.
Ввод Вывод
20 60
5 20
25 50
120
Примечание: полный цикл светофора длится 20+5+25+5=55 секунд. Светофор отработал два полных цикла, а потом ещё 120-55х2=10 секунд горел красный. В каждом цикле красный горит 20+5=25 секунд, жёлтый горит 10 секунд, а зелёный — 25 секунд.
Итого, красный горел 25х2+10=60 секунд, жёлтый горел 10х2=20 секунд, а зелёный горел 25х2=50 секунд.