Pagini recente » Cod sursa (job #3210717) | Cod sursa (job #1238956) | Cod sursa (job #2428218) | Cod sursa (job #861915) | Cod sursa (job #371517)
Cod sursa(job #371517)
#include<fstream.h>
#include<stdio.h>
char a[101][101];
int vizr[101][101],vizj[101][101],c[2][10001],min=101*101,b[2],i,j,p,u,dx[8]={-1,-1,0,1,1,1,0,-1},dy[8]={0,1,1,1,0,-1,-1,-1},n,m;
int main()
{ int x1,y1,x2,y2;
char x;
ifstream f("rj.in");
ofstream g("rj.out");
f>>n>>m;
for(i=1;i<=n;i++)
{ f.get();
for(j=1;j<=m;j++)
{ x=f.get();
if (x!='X')
{ a[i][j]=1;
if(x=='R')
{ x1=i;
y1=j;
}
if(x=='J')
{ x2=i;
y2=j;
}
}
else
a[i][j]=0;
}
}
c[0][1]=x1;
c[1][1]=y1;
vizr[x1][y1]=1;
p=u=1;
while(p!=u+1)
{
for(i=0;i<8;i++)
if(vizr[c[0][p]+dx[i]][c[1][p]+dy[i]]==0&&a[c[0][p]+dx[i]][c[1][p]+dy[i]]!=0)
{
u++;
c[0][u]=c[0][p]+dx[i];
c[1][u]=c[1][p]+dy[i];
vizr[c[0][p]+dx[i]][c[1][p]+dy[i]]=vizr[c[0][p]][c[1][p]]+1;
}
p++;
}
c[0][1]=x2;
c[1][1]=y2;
vizj[x2][y2]=1;
p=u=1;
while(p!=u+1)
{
for(i=0;i<8;i++)
if(vizj[c[0][p]+dx[i]][c[1][p]+dy[i]]==0&&a[c[0][p]+dx[i]][c[1][p]+dy[i]]!=0)
{
u++;
c[0][u]=c[0][p]+dx[i];
c[1][u]=c[1][p]+dy[i];
vizj[c[0][p]+dx[i]][c[1][p]+dy[i]]=vizj[c[0][p]][c[1][p]]+1;
}
p++;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(vizr[i][j]==vizj[i][j]&&vizr[i][j]!=0)
{
if(vizr[i][j]<min)
{
min=vizr[i][j];
b[0]=i;
b[1]=j;
}
}
}
}
g<<min<<" "<<b[0]<<" "<<b[1];
return 0;
}