Pagini recente » Cod sursa (job #2275171) | Cod sursa (job #791301) | Cod sursa (job #336812) | Cod sursa (job #2969671) | Cod sursa (job #1577716)
#include<stdio.h>
using namespace std;
int ar[226][226],aj[256][256],linie[8],coloana[8];
struct coadda
{
int lin,col;
};
coadda coada[65025];
int main()
{
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
int n,m,i,j,ic,sf,l,c,nr,min=100000,minx,miny,linr,colr,colj,linj;
char C;
linie[0]=-1;
linie[1]=-1;
linie[2]=0;
linie[3]=1;
linie[4]=1;
linie[5]=1;
linie[6]=0;
linie[7]=-1;
coloana[0]=0;
coloana[1]=1;
coloana[2]=1;
coloana[3]=1;
coloana[4]=0;
coloana[5]=-1;
coloana[6]=-1;
coloana[7]=-1;
scanf("%d%d",&n,&m);
scanf("%c",&C);
for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
{
scanf("%c",&C);
if(C=='X')
{
ar[i][j]=-1;
aj[i][j]=-1;
}
if(C=='R')
{
linr=i;
colr=j;
ar[i][j]=1;
}
if(C=='J')
{
linj=i;
colj=j;
aj[i][j]=1;
}
}
scanf("%c",&C);
}
ic=sf=1;
coada[ic].lin=linr;
coada[ic].col=colr;
while(ic<=sf)
{
for(i=0; i<8; i++)
{
l=coada[ic].lin+linie[i];
c=coada[ic].col+coloana[i];
if(l>=1&&l<=n&&c>=1&&c<=m&&ar[l][c]==0)
{
sf++;
coada[sf].lin=l;
coada[sf].col=c;
ar[l][c]=ar[coada[ic].lin][coada[ic].col]+1;
}
}
ic++;
}
ic=sf=1;
coada[ic].lin=linj;
coada[ic].col=colj;
while(ic<=sf)
{
for(i=0; i<8; i++)
{
l=coada[ic].lin+linie[i];
c=coada[ic].col+coloana[i];
if(l>=1&&l<=n&&c>=1&&c<=m&&aj[l][c]==0)
{
sf++;
coada[sf].lin=l;
coada[sf].col=c;
aj[l][c]=aj[coada[ic].lin][coada[ic].col]+1;
}
}
ic++;
}
nr=0;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
if(ar[i][j]>0&&aj[i][j]>0&&ar[i][j]==aj[i][j])
if(aj[i][j]<min)
{
min=aj[i][j];
minx=i;
miny=j;
}
printf("%d %d %d",min,minx,miny);
return 0;
}