Pagini recente » Cod sursa (job #1582882) | Cod sursa (job #1635382) | Cod sursa (job #472151) | Cod sursa (job #1694027) | Cod sursa (job #282304)
Cod sursa(job #282304)
#include <stdio.h>
#define N 101
int a[N][N],n,m;
int ir,jr,ij,jj; //coord lui romeo si ale julietei
int vi[N*N],vj[N*N],l;
const int di[8]={-1,-1,0,1,1,1,0,-1};
const int dj[8]={0,1,1,1,0,-1,-1,-1};
int imin,jmin;
void citeste()
{ char c;
scanf("%d %d\n",&n,&m);
for(int i=1;i<=n;i++)
{ for(int j=1;j<=m;j++)
{ scanf("%c",&c);
if(c=='R') {a[i][j]=1; ir=i;jr=j;}
if(c=='J') {a[i][j]=1; ij=i;jj=j;}
if(c==' ') a[i][j]=0;
if(c=='X') a[i][j]=-1;
}
scanf("\n");
}
for(int i=0;i<=n+1;i++)
a[i][0]=-1, a[i][n+1]=-1;
for(int j=1;j<=m;j++)
a[0][j]=-1, a[n+1][j]=-1;
}
void afis()
{
for(int i=0;i<=n+1;i++)
{ for(int j=0;j<=m+1;j++)
printf("%2d ",a[i][j]);
printf("\n");
}
}
void lee()
{
int i2,j2;
vi[1]=ir; vj[1]=jr;
vi[2]=ij; vj[2]=jj;
l=2;
for(int i=1;i<=l;i++)
for(int k=0;k<8;k++)
{ i2=vi[i]+di[k];
j2=vj[i]+dj[k];
if(a[i2][j2]!=-1)
if(a[i2][j2]==0)
{ l++;
vi[l]=i2; vj[l]=j2;
a[i2][j2]=a[vi[i]][vj[i]]+1;
}
else
if(a[i2][j2]==a[vi[i]][vj[i]]+1)
{ printf("%d %d %d",a[i2][j2],i2,j2);
return;
}
}
}
int main()
{
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
citeste();
lee();
return 0;
}