Pagini recente » Cod sursa (job #2472723) | Cod sursa (job #3173665) | Cod sursa (job #647373) | Cod sursa (job #1074236) | Cod sursa (job #1633611)
#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;
}