Ирина
?>

Задача 5: Числа В многопользовательской игре Agar.io игроки управляют бактериями. У каждой бактерии есть размер — целое положительное число. Если встречаются две бактерии разного размера, то бактерия большего размера поглощает меньшую бактерию. При этом меньшая бактерия исчезает, а размер большей бактерии увеличивается на размер меньшей бактерии. Если встречаются две бактерии равного размера, то ничего не происходит. Побеждает игрок, чья бактерия останется на игровом поле одна. В игре участвуют N игроков, вам даны размеры их бактерий. Определите, какие из игроков имеют возможность выиграть в этой игре. Входные данные Программа получает на вход целое число N, 1 ≤ N ≤ 105 — количество игроков. Следующие N строк содержат по одному числу ai —размеры бактерий, 1 ≤ ai ≤ 109. Числа ai заданы в порядке неубывания. Выходные данные Программа должна вывести N чисел равных «0» или «1», по одному числу в строке. Если i-е число равно 0, то это означает, что i-й игрок (размер бактерии которого первоначально был равен ai) ни при каких обстоятельствах не может выиграть в этой игре. Если i-е число равно 1, то это означает, что i-й игрок имеет возможность выиграть в этой игре. Система оценивания Решение, правильно работающее только для случаев, когда N ≤ 100 и все ai ≤ 106, будет оцениваться в

Информатика

Ответы

lazu8375

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++

Sonyamaslo6
Program gt2;
var i,j,s:integer;
a:array[1..4,1..4]of integer;
begin
randomize;
for i:=1 to 4 do
for j:=1 to 4 do
a[i,j]:=random(7)+12;
for i:=1 to 4 do
begin
s:=0;
for j:=1 to 4 do
s:=s+a[j,i];
writeln(s);
end;
end.

program gt3;
var i,j,s:integer;
a:array[1..7,1..7]of integer;
begin
randomize;
for i:=1 to 7 do
for j:=1 to 7 do
a[i,j]:=random(7)+12;
for i:=1 to 7 do
begin
s:=0;
for j:=1 to 7 do
if(a[j,i]<14)then s:=s+1;
writeln(s);
end;
end.

program gt4;
var i,j,p:integer;
a:array[1..3,1..3]of integer;
begin
for i:=1 to 3 do
for j:=1 to 3 do
read(a[i,j]);
for i:=1 to 3 do
begin
p:=a[i,1];
a[i,1]:=a[i,2];
a[i,2]:=p;
end;
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
write(a[i,j],' ');
end;
writeln;
end;
end.
Рузиев_Давиденко
VAR
i, j: Integer;
a: Array [1..10] of Array [1..10] of Integer;
BEGIN
for i := 1 to 10 do
for j := 1 to 10 do a[i][j] := j*j;

for i := 1 to 10 do begin
for j := 1 to 10 do Write(a[i][j],' '); Writeln; end;
END.

VAR
i, j: Integer;
a: Array [0..4] of Array [1..4] of Integer;
BEGIN
for i := 1 to 4 do
for j := 1 to 4 do begin
a[i][j] := Random(7)+12;
a[0][j] := a[0][j] + a[i][j];
end;

for i := 1 to 4 do begin
for j := 1 to 4 do Write(a[i][j],' '); Writeln; end;

Writeln;
for i := 1 to 4 do Write(a[0][i],' ');
END.

VAR
i, j: Integer;
a: Array [0..7] of Array [1..7] of Integer;
BEGIN
for i := 1 to 7 do
for j := 1 to 7 do begin
a[i][j] := Random(7)+12;
if (a[i][j] < 14) then Inc(a[0][j]);
end;

for i := 1 to 7 do begin
for j := 1 to 7 do Write(a[i][j],' '); Writeln; end;

Writeln;
for i := 1 to 7 do Write(a[0][i],' ');
END.

VAR
i, j: Integer;
a: Array [0..3] of Array [1..3] of Integer;
BEGIN
for i := 1 to 3 do
for j := 1 to 3 do Read(a[i][j]);

for i := 1 to 3 do begin
a[0][i] := a[1][i]; a[1][i] := a[2][i];
a[2][i] := a[0][i]; end;

for i := 1 to 3 do begin
for j := 1 to 3 do Write(a[i][j],' '); Writeln; end;
END.

VAR
i, j, m: Integer;
a: Array [1..5] of Array [1..5] of Integer;
BEGIN
for i := 1 to 5 do
for j := 1 to 5 do begin
a[i][j] := Random(5)+1;
end;

for i := 1 to 5 do begin
for j := 1 to 5 do Write(a[i][j],' '); Writeln; end;

m := 6;
for i := 1 to 5 do
for j := 1 to 5 do
if (i > j)and(m > a[i][j]) then m := a[i][j];

Writeln(a[i][j]);
END.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Задача 5: Числа В многопользовательской игре Agar.io игроки управляют бактериями. У каждой бактерии есть размер — целое положительное число. Если встречаются две бактерии разного размера, то бактерия большего размера поглощает меньшую бактерию. При этом меньшая бактерия исчезает, а размер большей бактерии увеличивается на размер меньшей бактерии. Если встречаются две бактерии равного размера, то ничего не происходит. Побеждает игрок, чья бактерия останется на игровом поле одна. В игре участвуют N игроков, вам даны размеры их бактерий. Определите, какие из игроков имеют возможность выиграть в этой игре. Входные данные Программа получает на вход целое число N, 1 ≤ N ≤ 105 — количество игроков. Следующие N строк содержат по одному числу ai —размеры бактерий, 1 ≤ ai ≤ 109. Числа ai заданы в порядке неубывания. Выходные данные Программа должна вывести N чисел равных «0» или «1», по одному числу в строке. Если i-е число равно 0, то это означает, что i-й игрок (размер бактерии которого первоначально был равен ai) ни при каких обстоятельствах не может выиграть в этой игре. Если i-е число равно 1, то это означает, что i-й игрок имеет возможность выиграть в этой игре. Система оценивания Решение, правильно работающее только для случаев, когда N ≤ 100 и все ai ≤ 106, будет оцениваться в
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

ivanrancev
Sergeevich-Novikov
rebet61
rada8080
Busyashaa
md-masya
abakas235
janepustu
Galina_Yurevna
georgegradoff122
dimanov
dmitzu8594
Kuznetsova702
smnra219
Koshkina Alekseevna