N = int(input())
if N == 1:
exit(0)
bacteria = [0] * N
for i in range(0, N):
bacteria[i] = int(input())
prefix_sum = [bacteria[0]] * N
for i in range(1, N):
prefix_sum[i] = prefix_sum[i - 1] + bacteria[i]
ans = [0] * N
if bacteria[N-1] > bacteria[0]:
ans[N - 1] = 1
for i in reversed(range(2, N)):
if ans[i] == 1:
prev = i - 1
if prefix_sum[prev] > bacteria[i] and bacteria[0] < bacteria[prev]:
ans[prev] = 1
for i in range(N):
print(ans[i])
Объяснение:
g++
Объяснение:
1)У тебя спрашивают b=1? У тебя дано b=3, значит b!=1. Если нет, то переходим к следующим указаниям: с=с-b=4-3=1, b=b+c=3+1(Потому что в предыдущем шаге мы дали новое значение для c, вернее произвели математическую операцию с ним. Возвращаемся(Слева линия) снова к логическому условию. Я честно говоря ХЗ, что они тут имели ввиду, но после того, что я описал c=1,но если мы продолжим проверку b=1, то c начнет принимать отрицательные значения. Цикл вышел, как мне кажется.
Теперь мне лень расписывать - держи фото/скрины
Не знаю, что у тебя за язык программирования, но я сделал тоже самое на Python, вроде результат отличатся не должен.
begin
var a:=ReadReal('a=');
var n:=ReadInteger('n=');
var s:=1/a; // для n=1
if n<=1 then s+=1
else
begin
a*=a; // a^2
var z:=a;
for var i:=2 to n do
begin
s+=1/z;
z*=a
end
end;
Println(s)
end.
a= 3.73n= 50.34553638581855