Pagini recente » Cod sursa (job #1298067) | Cod sursa (job #2136576) | Cod sursa (job #1522520) | Cod sursa (job #226727) | Cod sursa (job #222737)
Cod sursa(job #222737)
#include<fstream.h>
int n,m,x[9]={0,-1,-1,0,1,1,1,0,-1},y[9]={0,1,1,1,0,-1,-1,-1},xf,yf,tmin,
tr[102][102],tj[102][102];
char a[102][102];
ifstream fin("rj.in");
ofstream fout("rj.out");
void tras(int t[102][102]);
void read()
{ int i,j;char aux[101];
fin>>n>>m;
for(i=1;i<=n;i++)
{ fin.get();
fin.get(aux,100);
for(j=0;j<m;j++)
{ a[i][j+1]=aux[j];
if(aux[j]=='R')
{ tr[i][j+1]=1;
a[i][j+1]=' ';
}
if(aux[j]=='J')
{ tj[i][j+1]=1;
a[i][j+1]=' ';
}
}
}
for(i=0;i<=n+1;i++)
{ a[0][i]='X';
a[i][n+1]='X';
}
for(i=0;i<=m+1;i++)
{ a[i][0]='X';
a[m+1][i]='X';
}
}
int main()
{ int i,j;
read();
tras(tr);
tras(tj);
tmin=32000;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(tr[i][j]==tj[i][j]&&tr[i][j]!=0&&tr[i][j]<tmin)
{ xf=i;
yf=j;
tmin=tr[i][j];
}
fout<<tmin-1<<' '<<xf<<' '<<yf;
return 0;
}
void tras(int t[102][102])
{ int i,j,sw=0,min,ii,jj;
while(!sw)
{ sw=1;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]==' '&&t[i][j]==0)
{ min=32000;
for(int k=1;k<=8;k++)
{ ii=i+x[k];
jj=j+y[k];
if(t[ii][jj]<min&&t[ii][jj]>0)
min=t[ii][jj];
}
if(min!=32000)
{t[i][j]=min+1;sw=0;}
}
}
}