Cod sursa(job #77656)
Utilizator | Data | 14 august 2007 17:12:06 | |
---|---|---|---|
Problema | Rj | Scor | 100 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 2.16 kb |
const v1:array[1..8] of shortint=(0,0,1,1,1,-1,-1,-1);
v2:array[1..8] of shortint=(-1,1,-1,0,1,-1,0,1);
var m,a,b:array[0..110,0..110] of integer;
i,j,n,mi,ai,aj,h,mn,pri,prj,pji,pjj:longint;
vi,vj:array[1..11000] of longint;
c:char;
f1,f2:text;
procedure vecini(x,y:longint);
begin
if m[x,y]=maxint then
begin
m[x,y]:=m[vi[i],vj[i]]+1;
inc(h);
vi[h]:=x;
vj[h]:=y;
end;
end;
procedure lee;
begin
while i<h do
begin
inc(i);
for j:=1 to 8 do
vecini(vi[i]+v1[j],vj[i]+v2[j]);
end;
end;
begin
assign(f1,'rj.in');
reset(f1);
assign(f2,'rj.out');
rewrite(f2);
readln(f1,n,mi);
for i:=1 to n do
begin
for j:=1 to mi do
begin
read(f1,c);
m[i,j]:=maxint;
if c='X' then m[i,j]:=-1;
if c='J' then
begin
pji:=i;
pjj:=j;
end;
if c='R' then
begin
pri:=i;
prj:=j;
end;
end;
readln(f1);
end;
mn:=maxint;
vi[1]:=pji;
vj[1]:=pjj;
i:=0;
h:=1;
b:=m;
m[pji,pjj]:=0;
lee;
a:=m;
m:=b;
i:=0;
h:=1;
vi[1]:=pri;
vj[1]:=prj;
m[pri,prj]:=0;
lee;
b:=m;
for i:=1 to n do
for j:=1 to mi do
if (a[i,j]=b[i,j])and(a[i,j]<mn)and(a[i,j]>=0) then
begin
mn:=a[i,j];
ai:=i;
aj:=j;
end;
writeln(f2,mn+1,' ',ai,' ',aj);
close(f1);
close(f2);
end.