Pagini recente » Cod sursa (job #2896313) | Cod sursa (job #1539676) | Cod sursa (job #2828849) | Cod sursa (job #1134808) | Cod sursa (job #1805433)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("rj.in");
ofstream fout("rj.out");
int n,m,i,j,i1,j1,i2,j2,ic,jc,iv,jv,minim,d,p,u,poz1,poz2;
int a[105][105],b[105][105],c[3][11025];
int di[]={-1,-1,-1,0,0,1,1,1};
int dj[]={-1,0,1,-1,1,-1,0,1};
char x[101];
int main ()
{
fin>>n>>m;
for(i=0;i<=n;i++)
{
fin.getline(x,101);
for(j=0;j<strlen(x);j++)
{
if(x[j]=='R')
{
i1=i;
j1=j+1;
}
if(x[j]=='J')
{
i2=i;
j2=j+1;
}
if(x[j]=='X')
{
a[i][j+1]=-1;
b[i][j+1]=-1;
}
}
}
c[0][1]=i1;
c[1][1]=j1;
a[i1][j1]=1;
p=1;u=1;
while(p<=u)
{
ic=c[0][p];
jc=c[1][p];
for(d=0;d<=7;d++)
{
iv=ic+di[d];
jv=jc+dj[d];
if(iv>=1&&iv<=n&&jv>=1&&jv<=m&&a[iv][jv]==0)
{
u++;
c[0][u]=iv;
c[1][u]=jv;
a[iv][jv]=1+a[ic][jc];
}
}
p++;
}
c[0][1]=i2;
c[1][1]=j2;
p=1;u=1;
b[i2][j2]=1;
minim=2000000000;
while(p<=u)
{
ic=c[0][p];
jc=c[1][p];
for(d=0;d<=7;d++)
{
iv=ic+di[d];
jv=jc+dj[d];
if(iv>=1&&iv<=n&&jv>=1&&jv<=m&&b[iv][jv]==0)
{
u++;
c[0][u]=iv;
c[1][u]=jv;
b[iv][jv]=1+b[ic][jc];
}
}
p++;
}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]==b[i][j]&&a[i][j]>0)
if(a[i][j]<minim)
{
minim=a[i][j];
poz1=i;
poz2=j;
}
fout<<minim<<" "<<poz1<<" "<<poz2;
return 0;
}