Cod sursa(job #158385)

Utilizator mariuscris90giuroiu marius mariuscris90 Data 13 martie 2008 16:57:54
Problema Rj Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.62 kb
program romeo;
type mat=array[0..101,0..101] of integer;
     vec=array[1..8] of record
                     x,y:-1..1;end;
     matt=array[0..101,0..101] of char;
var a,b:mat;
    c:vec;
    d:matt;
    x:char;
    t:boolean;
    k1,k2:integer;
    n,m,ri,ry,ji,jy,i,j,l,lc,k,f1,f2:integer;
    f,g:text;
begin
assign(f,'rj.in');assign(g,'rj.out');reset(f);rewrite(g);
readln(f,n,m);
for i:=1 to n do begin
for j:=1 to m do begin
read(f,x);
if x='X' then begin a[i,j]:=-1;b[i,j]:=-1;end;
if x=' ' then begin a[i,j]:=0;b[i,j]:=0;end;
if x='R' then begin ri:=i;ry:=j;end;
if x='J' then begin ji:=i;jy:=j;end;
end;
readln(f);
end;
for i:=0 to n+1 do begin
a[i,0]:=-1;b[i,0]:=-1;
a[i,m+1]:=-1;b[i,m+1]:=-1;
end;
for i:=0 to m+1 do begin
a[0,i]:=-1;b[0,i]:=-1;
a[n+1,i]:=-1;b[n+1,i]:=-1;
end;
c[1].x:=1;c[1].y:=0;c[2].x:=-1;c[2].y:=0;
c[3].x:=0;c[3].y:=1;c[4].x:=0;c[4].y:=-1;
c[5].x:=-1;
c[5].y:=-1;
c[6].x:=1;
c[6].y:=-1;
c[7].x:=1;
c[7].y:=1;
c[8].x:=-1;
c[8].y:=1;
k1:=1;
k2:=1;
a[ri,ry]:=k1;d[ri,ry]:='R';
b[ji,jy]:=k2;d[ji,jy]:='J';
repeat
t:=false;
for i:=1 to n do
for j:=1 to m do
if a[i,j]=k1 then
for k:=1 to 8 do begin
l:=c[k].y+i;
lc:=c[k].x+j;
if a[l,lc]=0 then begin a[l,lc]:=k1+1;d[l,lc]:='R';end;end;
for i:=1 to n do
for j:=1 to m do
if b[i,j]=k2 then
for k:=1 to 8 do begin
l:=c[k].y+i;
lc:=c[k].x+j;
if (a[l,lc]=k1+1)AND(B[L,LC]=0) and (d[l,lc]='R') then
begin f1:=l;f2:=lc;t:=true;break;break;break;end;
if b[l,lc]=0 then begin B[l,lc]:=k2+1;d[l,lc]:='J';end;
end;
k1:=k1+1;
k2:=k2+1;
until t=true;
writeln(g,K1,' ',f1,' ',F2);
close(f);close(g);end.