Pagini recente » Cod sursa (job #712466) | Cod sursa (job #1010493) | Cod sursa (job #2039853) | Cod sursa (job #43687) | Cod sursa (job #259529)
Cod sursa(job #259529)
#include<fstream.h>
#include<iostream.h>
char lin[100];
int a[100][100];
int n,m,ij,jj,ir,jr,ci[10001],cj[10001],xr,xj,yr,yj,b[100][100];
int d[]={-1,0,1,0};
int d1[]={0,1,0,-1};
int lee()
{int p,u,i,j;
p=u=1;
ci[u]=xr;
cj[u]=yr;
b[xr][yr]=1;
while(p<=u)
{ for(int k=0;k<=3;k++)
{int x=ci[p]+d[k];
int y=cj[p]+d1[k];
if(a[x][y]!=1&&b[x][y]==0 && x>=1 && x<=n && y>=1 && y<=n )
{u++;
ci[u]=x;
cj[u]=y;
b[x][y]=b[ci[p]][cj[p]]+1;
if (x==xj && y==yj)
{ cout<<x<<y;
break;}
}
}
p++;
}
return u;
}
int main()
{char d;
int i,j,tmin=99999;
ifstream in("rj.in");
ofstream out("rj.out");
in>>n>>m;
in.getline(lin,100);
for(i=1;i<=n+1;i++)
{
in.getline(lin,100);
for(j=0;j<m;j++)
{if (lin[j]=='X')
a[i][j+1]=1;
if (lin[j]=='R')
{a[i][j+1]=1;
xr=i;
yr=j+1;
}
if (lin[j]=='J')
{a[i][j+1]=0;
xj=i-1;
yj=j+1;}
}
}
in.close();
int u=lee();
out<<b[xj][yj]/2<<" "<<ci[u/2]<<" "<<cj[u/2]<<endl;
out.close();
return 0;
}