N=int(input())
a=[]
sum = 0
f = 0
c = 0
for i in range(N):
l = int(input())
sum = sum + l
a.append(l)
if N == 1:
print(1)
else:
ans = []
for i in range(N-1, 0, -1):
if a[i] > a[i-1]:
if sum > a[-1] or (sum > a[i+1] and f == 1):
for k in range(c+1):
ans.append(1)
c = 0
f = 1
else:
ans.append(0)
f = 0
elif a[i] == a[i-1]:
c += 1
else:
ans.append(0)
f = 0
sum=sum-a[i]
ans = ans[::-1]
print(0)
for i in range(c):
print(0)
for i in ans:
print(i)
Объяснение:
с тебя 500 рублей у меня сегодня др
Var
k,n,max:integer;
procedure hase(var k,n,max:integer); //сама последовательность
begin
if not(odd(n)) then n:=n div 2 else n:=n*3+1; //условие про чётность
writeln(n); //вывод нового члена последовательности
inc(k); //увеличение значения счётчика шагов
if max<n then max:=n; //поиск вершины
end;
procedure start(var k,n,max:integer); //название процедуры намекает
begin
readln(n);
k:=0;
writeln('Seq:');
max:=integer.MinValue;
while n<>1 do
hase(k,n,max);
writeln('Шаги:',k);
writeln('Вершина:',max);
end;
begin
start(k,n,max);
end.
Пример ввода:
6
Пример вывода:
Seq:
3
10
5
16
8
4
2
1
Шаги:8
Вершина:16