Pagini recente » Cod sursa (job #2645585) | Cod sursa (job #215823) | Cod sursa (job #1388927) | Cod sursa (job #2353700) | Cod sursa (job #796748)
Cod sursa(job #796748)
#include <cstdio>
int n,m,nr=1,nj=1;
struct cord
{
int x,y,val;
}cr[5000], cj[5000];
struct matr
{
int r,j;
}a[105][105];
void bordare(int n,int m)
{
int i;
for(i=0;i<=n+1;i++)
{
a[i][0].r=-1;
a[i][m+1].r=-1;
a[i][0].j=-1;
a[i][m+1].j=-1;
}
for(i=0;i<=m+1;i++)
{
a[0][i].r=-1;
a[n+1][i].r=-1;
a[0][i].j=-1;
a[n+1][i].j=-1;
}
}
void citire()
{
int i,j;
char c;
scanf("%d %d\n",&n,&m);
bordare(n,m);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
scanf("%c",&c);
if(c=='X'||c=='x')
{
a[i][j].r=-1;
a[i][j].j=-1;
}
else if(c=='R'||c=='r')
{
cr[0].x=i;
cr[0].y=j;
a[n][m].r=1;
}
else if(c=='J'||c=='j')
{
cj[0].x=i;
cj[0].y=j;
a[n][m].j=1;
}
}
scanf("%c",&c);
}
}
int lee()
{
int dir_x[8]={1,1,1,0,-1,-1,-1,0};
int dir_y[8]={-1,0,1,1,1,0,-1,-1};
int i,j;
matr ret;
for(i=0;;i++)
{
for(j=0;j<8;j++)
{
if(a[cr[i].x+dir_x[j]][cr[i].y+dir_y[j]].r==0)
{
cr[nr].x=cr[i].x+dir_x[j];
cr[nr].y=cr[i].y+dir_y[j];
a[cr[nr].x][cr[nr].y].r=a[cr[i].x][cr[i].y].r+1;
nr++;
}
}
for(j=0;j<8;j++)
{
if(a[cj[i].x+dir_x[j]][cj[i].y+dir_y[j]].j==0)
{
cj[nj].x=cj[i].x+dir_x[j];
cj[nj].y=cj[i].y+dir_y[j];
a[cj[nj].x][cj[nj].y].j=a[cj[i].x][cj[i].y].j+1;
if(a[cj[nj].x][cj[nj].y].j==a[cj[nj].x][cj[nj].y].r)
{
cj[nj].val=a[cj[nj].x][cj[nj].y].j;
return nj;
}
nj++;
}
}
}
}
int main()
{
int rasp,i,j;
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
citire();
rasp= lee();
printf("%d %d %d\n",cj[rasp].val+1,cj[rasp].x,cj[rasp].y);
return 0;
}