Pagini recente » Statistici Abc Def (abcdef1209) | Cod sursa (job #2093721) | Cod sursa (job #2960740) | Cod sursa (job #2004650) | Cod sursa (job #121520)
Cod sursa(job #121520)
#include<stdio.h>
#include<string.h>
long l[9]={1,1,1,-1,-1,-1,0,0};
long c[9]={0,1,-1,0,1,-1,1,-1};
char x[101][101],cc;
long in,sf,rez,i,j,n,m,k,xi,yi,xf,yf,y[101][101],z[11][11];
struct kkt
{
int a,b,k;
};
kkt q[101];
int main()
{
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
scanf("%ld%ld%c",&n,&m);
m--;
for (i=1;i<=n;i++)
{
gets(x[i]);
while(strlen(x[i])<=m)
{
k=strlen(x[i]);
x[i][k]=' ';
x[i][k+1]=NULL;
}
}
for (i=1;i<=n;i++)
for (j=0;j<=m;j++)
{
if (x[i][j]=='R') {xi=i; yi=j;x[i][j]=' ';}
if (x[i][j]=='J') {xf=i; yf=j;x[i][j]=' ';}
}
q[1].a=xi;
q[1].b=yi;
q[1].k=0;
y[xi][yi]=1;
in=1;
sf=1;
while (in<=sf)
{
for (i=0;i<=7;i++)
if (x[q[in].a+l[i]][q[in].b+c[i]]==' '&&q[in].a+l[i]>0&&q[in].a+l[i]<=n&&q[in].b+c[i]>=0&&q[in].b+c[i]<=m&&y[q[in].a+l[i]][q[in].b+c[i]]==0)
{
sf++;
q[sf].a=q[in].a+l[i];
q[sf].b=q[in].b+c[i];
q[sf].k=q[in].k+1;
y[q[sf].a][q[sf].b]=q[sf].k;
}
in++;
}
q[1].a=xf;
q[1].b=yf;
q[1].k=0;
z[xf][yf]=1;
in=1;
sf=1;
while (in<=sf)
{
for (i=0;i<=7;i++)
if (x[q[in].a+l[i]][q[in].b+c[i]]==' '&&q[in].a+l[i]>0&&q[in].a+l[i]<=n&&q[in].b+c[i]>=0&&q[in].b+c[i]<=m&&z[q[in].a+l[i]][q[in].b+c[i]]==0)
{
sf++;
q[sf].a=q[in].a+l[i];
q[sf].b=q[in].b+c[i];
q[sf].k=q[in].k+1;
z[q[sf].a][q[sf].b]=q[sf].k;
}
in++;
}
rez=1000001;
for (i=1;i<=n;i++)
for (j=0;j<=m;j++)
if (y[i][j]==z[i][j]&&y[i][j]<rez&&y[i][j]!=0) {rez=y[i][j]; xi=i; yi=j;}
printf("%ld %ld %ld\n",rez+1,xi,yi+1);
return 0;
}