Pagini recente » Profil AnamariaG | Autentificare | redsnow_1 | Cod sursa (job #1909096) | Cod sursa (job #220164)
Cod sursa(job #220164)
#include<fstream.h>
#include<iostream.h>
char a[101][101];
int b[101][101],c[101][101],n,m,ij,jj,ir,jr,ci[10000],cj[10000];
int d[]={-1,0,1,0};
int d1[]={0,1,0,-1};
int leer()
{int p,u,i,j;
p=u=1;
ci[u]=ir;
cj[u]=jr;
b[ir][jr]=1;
while(p<=u)
{i=ci[p];
j=cj[p];
for(int k=0;k<=3;k++)
if(b[d[k]][d1[k]]!=-1&&b[d[k]][d1[k]]>b[i][j]+1) {u++;
ci[u]=i+1;
cj[u]=j;
b[d[k]][d1[k]]=b[i][j]+1;}
p++;}
return 0;
}
int leej()
{int p,u,i,j;
p=u=1;
ci[u]=ij;
cj[u]=jj;
c[ij][jj]=1;
while(p<=u)
{i=ci[p];
j=cj[p];
for(int k=0;i<=3;i++)
if(c[d[k]][d1[k]]!=-1&&c[d[k]][d1[k]]>c[i][j]+1) {u++;
ci[u]=i+1;
cj[u]=j;
c[d[k]][d1[k]]=c[i][j]+1;}
p++;}
return 0;
}
int main()
{char d;
int i,j,tmin=99999;
ifstream in("rj.in");
ofstream out("rj.out");
in>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{in>>a[i][j];
if(a[i][j]=='X') {b[i][j]=-1;
c[i][j]=-1;}
else if(a[i][j]==' ') {b[i][j]=99999;
c[i][j]=99999;}
else if(a[i][j]=='R') {ir=i;
jr=j;
b[i][j]=1;
c[i][j]=99999;}
else if(a[i][j]=='J') {ij=i;
jj=j;
c[i][j]=1;
b[i][j]=99999;}
}
in.close();
for(i=0;i<=n+1;i++)
{b[i][0]=b[i][m+1]-1;
c[i][0]=c[i][m+1]=-1;}
for(j=0;j<=m+1;j++)
b[0][j]=b[n+1][j]=c[0][j]=c[n+1][j]=-1;
leer();
leej();
}
out<<tmin<<ir<<jr<<endl;
out.close();
return 0;
}