Pagini recente » Borderou de evaluare (job #702945) | Cod sursa (job #566035) | Rating Anghelina Vozian (vozian.anghelina) | Cod sursa (job #862741) | Cod sursa (job #1123512)
#include <cstdio>
using namespace std;
struct JARAXXUS
{
int l,c;
} v[16384];
int a[128][128],n,m,i,j,x,y,psl,psc,pfl,pfc,pi,pf;
char c;
void citire()
{
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
scanf("%c",&c);
if(c=='R')
{
psl=i;
psc=j;
a[i][j]=0;
}
if(c=='J')
{
pfl=i;
pfc=j;
a[i][j]=0;
}
if(c=='X')
a[i][j]=-1;
if(c==' ')
a[i][j]=0;
}
}
void lee()
{
v[1].l=psl;
v[1].c=psc;
pi=1;
pf=1;
while(pi<=pf)
{
x=v[pi].l;
y=v[pf].c;
if(x<n && a[x+1][y]!=-1)
{
pf++;
v[pf].l=x+1;
v[pf].c=y;
a[x+1][y]=a[x][y]+1;
if(x+1==pfl && y==pfc) break;
}
if(y<n && a[x][y+1]!=-1)
{
pf++;
v[pf].l=x;
v[pf].c=y+1;
a[x][y+1]=a[x][y]+1;
if(x==pfl && y+1==pfc) break;
}
if(x>1 && a[x-1][y]!=-1)
{
pf++;
v[pf].l=x-1;
v[pf].c=y;
a[x-1][y]=a[x][y]+1;
if(x-1==pfl && y==pfc) break;
}
if(y>1 && a[x][y-1]!=-1)
{
pf++;
v[pf].l=x;
v[pf].c=y-1;
a[x][y-1]=a[x][y]+1;
if(x==pfl && y-1==pfc) break;
}
pi++;
}
}
int main()
{
citire();
lee();
printf("%d %d %d\n",a[pfl][pfc],pfl,pfc);
return 0;
}