Pagini recente » Cod sursa (job #2780048) | Cod sursa (job #870913) | Cod sursa (job #1138146) | Cod sursa (job #916541) | Cod sursa (job #255551)
Cod sursa(job #255551)
#include <stdio.h>
int k,a[101][101],b[101][101],q,xf,yf,lv,cv,i,j,n,m,l;
char dx[8]={0, 1, 0, -1, -1, 1, -1, 1};
char dy[8]={1, 0, -1, 0, -1, 1, 1,-1};
char ch;
int main()
{
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
scanf("%d %d", &n, &m);
scanf("%c", &ch);
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
{
scanf("%c", &ch);
if (ch=='X')
{
a[i][j]=-1;b[i][j]=-1;
}
if (ch==' ')
{
a[i][j]=0;b[i][j]=0;
}
if (ch=='R')
a[i][j]=1;
if (ch=='J')
b[i][j]=1;
}
scanf("%c", &ch);
}
for (j=1;j<=m+1;j++)
{
a[0][j]=-1;
b[0][j]=-1;
a[n+1][j]=-1;
b[n+1][j]=-1;
}
for (i=0;i<=n+1;i++)
{
a[i][0]=-1;
b[i][0]=-1;
a[i][m+1]=-1;
b[i][m+1]=-1;
}
k=1;
q=0;
while (q==0)
{
q=1;
k++;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
if (a[i][j]==k-1)
for (l=0;l<8;l++)
{
lv=i+dx[l];
cv=j+dy[l];
if (a[lv][cv]==0)
{a[lv][cv]=k;
q=0;}
}
}
k=1;
q=0;
while (q==0)
{
q=1;
k++;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
if (b[i][j]==k-1)
for (l=1;l<=8;l++)
{
lv=i+dx[l];
cv=j+dy[l];
if (b[lv][cv]==0)
{b[lv][cv]=k;
q=0;}
}
}
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
if (a[i][j]==b[i][j] && a[i][j]>0 && a[i][j]<k)
{
k=a[i][j];
xf=i;
yf=j;
}
if (q==1)
printf("%d %d %d",k,xf,yf);
return 0;
}