Listing ROBOT.PAS
Program
Robot;
const MaxMN=100;
var t:array[1..MaxMN,1..MaxMN] of 0..1;
m,n,solutie:Word;
Procedure Citeste_date;
var fi:Text;
i,j:Word;
begin
Assign(fi,'ROBOT.IN');
Reset(fi);
Readln(fi,m,n);
for i:=1 to m do
begin
for j:=1 to n do Read(fi,t[i,j]);
Readln(fi)
end;
Close(fi)
end;
Procedure Scrie_rezultate;
var fo:Text;
begin
Assign(fo,'ROBOT.OUT'); ReWrite(fo);
Writeln(fo,solutie);
Close(fo)
end;
Procedure Calculeaza;
var i,ii,j:Word;
u:array[0..MaxMN] of Word;
begin
for i:=2 to m do u[i]:=0;
u[1]:=1;
for j:=1 to n do
begin
i:=M+1; U[0]:=1;
while i>0 do
begin
repeat
Dec(i)
until (i=0) or (t[i,j]=1);
if i=0 then Break;
ii:=i;
while u[ii]=0 do Dec(ii);
u[ii]:=0; u[i]:=1;
i:=ii
end
end;
solutie:=0;
for i:=1 to m do solutie:=solutie+u[i]
end;
Begin
Citeste_date;
Calculeaza;
Scrie_rezultate
End.