Cod sursa(job #1040762)

Utilizator vrabievictorvictor vrabie vrabievictor Data 24 noiembrie 2013 21:43:13
Problema Rj Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.94 kb
program rj;
var t,s,r:array[0..101,0..101]of longint;
n,m,ii,jj,i,j,x,y,x1,y1,k:longint; c:char;
procedure lee(x1,y1:integer);
var xy:array[0..2,1..10000]of integer;
ul,pr,x,y,k:longint;
begin
pr:=1;     t[x1,y1]:=1;
xy[1,pr]:=x1;
xy[2,pr]:=y1;
xy[0,pr]:=1;
ul:=1; pr:=0;
repeat
pr:=pr+1;
x:=xy[1,pr];
y:=xy[2,pr];
k:=xy[0,pr];
if t[x-1,y-1]=0 then begin inc(ul); xy[0,ul]:=k+1;xy[1,ul]:=x-1;xy[2,ul]:=y-1;t[x-1,y-1]:=k+1;end;
if t[x-1,y]=0 then begin inc(ul); xy[0,ul]:=k+1;xy[1,ul]:=x-1;xy[2,ul]:=y;t[x-1,y]:=k+1;end;
if t[x-1,y+1]=0 then begin inc(ul); xy[0,ul]:=k+1;xy[1,ul]:=x-1;xy[2,ul]:=y+1;t[x-1,y+1]:=k+1;end;
if t[x,y+1]=0 then begin inc(ul); xy[0,ul]:=k+1;xy[1,ul]:=x;xy[2,ul]:=y+1;t[x,y+1]:=k+1;end;
if t[x+1,y+1]=0 then begin inc(ul); xy[0,ul]:=k+1;xy[1,ul]:=x+1;xy[2,ul]:=y+1;t[x+1,y+1]:=k+1;end;
if t[x+1,y]=0 then begin inc(ul); xy[0,ul]:=k+1;xy[1,ul]:=x+1;xy[2,ul]:=y;t[x+1,y]:=k+1;end;
if t[x+1,y-1]=0 then begin inc(ul); xy[0,ul]:=k+1;xy[1,ul]:=x+1;xy[2,ul]:=y-1;t[x+1,y-1]:=k+1;end;
if t[x,y-1]=0 then begin inc(ul); xy[0,ul]:=k+1;xy[1,ul]:=x;xy[2,ul]:=y-1;t[x,y-1]:=k+1;end;
until xy[0,pr+1]=0;
end;
begin
assign(input,'rj.in'); reset(input);
assign(output,'rj.out'); rewrite(output);
readln(n,m);
for i:=1 to n do
begin
for j:=1 to m do begin read(c);
if c='X' then t[i,j]:=1 else t[i,j]:=0;
if c='R' then begin x:=i; y:=j; end;
if c='J' then begin x1:=i; y1:=j; end;
end;
readln();
end;
for i:=0 to m+1 do t[0,i]:=1;
for i:=0 to m+1 do t[n+1,i]:=1;
for i:=0 to n+1 do t[i,0]:=1;
for i:=0 to n+1 do t[i,m+1]:=1;
for i:=0 to n+1 do
for j:=0 to m+1 do s[i,j]:=t[i,j];
lee(x,y);
for i:=0 to n+1 do
for j:=0 to m+1 do r[i,j]:=t[i,j];
 for i:=0 to n+1 do
for j:=0 to m+1 do t[i,j]:=s[i,j];
lee(x1,y1); k:=10000;
for i:=1 to n do
for j:=1 to m do
if (t[i,j]<>1)and(t[i,j]<>0)and(t[i,j]=r[i,j]) then
if (t[i,j]<k) then begin k:=t[i,j]; ii:=i; jj:=j; end;
writeln(k,' ',ii,' ',jj);
close(input); close(output);
end.