У меня есть такой код:
program my;
var n,m,i,j : integer;
k,q,res : longint;
a,b: array[0..101,0..101] of byte;
begin
readln(n,m,k);
for i := 1 to n do
begin
for j := 1 to m do
read(a[i,j]);
readln;
end;
for q := 1 to k do
begin
for i := 1 to n do
begin
for j := 1 to m do
begin
if a[i,j] = 1 then
begin
b[i-1,j] := 1;
b[i+1,j] := 1;
b[i,j+1] := 1;
b[i,j-1] := 1;
end;
end;
end;
for i := 1 to n do
for j := 1 to m do
begin
if a[i,j] = 1 then
b[i,j] := 1;
if b[i,j] = 1 then a[i,j] := 1;
end;
end;
res := 0;
for i := 1 to n do
for j := 1 to m do
if a[i,j] = 1 then
inc(res);
writeln(res);
end.
Но при прохождении тестов видаёт лимит времени.
1<N,M<=100
1<=K<=1000000
Спасибо!