Pagini recente » Cod sursa (job #2595938) | Cod sursa (job #1552618) | Cod sursa (job #406658) | Cod sursa (job #184053) | Cod sursa (job #1374407)
#include<cstdio>
using namespace std;
int n,m,i,j,romeo[101][101],julieta[101][101],dl[]={-1,0,1,0},dc[]={0,1,0,-1},x,y,k,p,u,tmin=10000,c1,c2;
char c;
struct coada
{
int l;
int c;
}Cr[100000],Cj[100000];
int main()
{
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
scanf("%d%d\n",&n,&m);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
c=' ';
scanf("%c",&c);
if(c=='R')
{
romeo[i][j]=1;
Cr[0].l=i;
Cr[0].c=j;
julieta[i][j]=0;
}
if(c==' ')
{
romeo[i][j]=julieta[i][j]=0;
}
if(c=='X')
{
romeo[i][j]=julieta[i][j]=-1;
}
if(c=='J')
{
julieta[i][j]=1;
Cj[0].l=i;
Cj[0].c=j;
romeo[i][j]=0;
}
}
scanf("\n");
}
for(i=0;i<=n+1;i++)
{
romeo[i][0]=julieta[i][0]=romeo[i][m+1]=julieta[i][m+1]=-1;
}
for(j=0;j<=m+1;j++)
{
romeo[0][j]=julieta[0][j]=romeo[n+1][j]=julieta[n+1][j]=-1;
}
while(p<=u)
{
x=Cr[p].l;
y=Cr[p].c;
p++;
for(k=0;k<4;k++)
{
if(romeo[x+dl[k]][y+dc[k]]==0)
{
u++;
romeo[x+dl[k]][y+dc[k]]=romeo[x][y]+1;
Cr[u].l=x+dl[k];
Cr[u].c=y+dc[k];
}
}
}
p=u=0;
while(p<=u)
{
x=Cj[p].l;
y=Cj[p].c;
p++;
for(k=0;k<4;k++)
{
if(julieta[x+dl[k]][y+dc[k]]==0)
{
u++;
julieta[x+dl[k]][y+dc[k]]=julieta[x][y]+1;
Cj[u].l=x+dl[k];
Cj[u].c=y+dc[k];
}
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(romeo[i][j]==julieta[i][j]&&romeo[i][j]<tmin&&romeo[i][j]>1)
{
tmin=romeo[i][j];
c1=i;
c2=j;
}
}
}
printf("%d %d %d",tmin-1,c1,c2);
return 0;
}