Pagini recente » Cod sursa (job #3266472) | Cod sursa (job #129119) | Cod sursa (job #1399302) | Cod sursa (job #1762934) | Cod sursa (job #78375)
Cod sursa(job #78375)
#include<stdio.h>
int n,m,a[110][110],rom[110][110],jul[110][110],i,j,ok;
char aux;
int main()
{
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
scanf("%ld %ld",&n,&m);
scanf("\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
scanf("%c",&aux);
if (aux=='J')
jul[i][j]=2;
if (aux=='R')
rom[i][j]=2;
if (aux=='X')
{
jul[i][j]=1;
rom[i][j]=1;
}
}
scanf("\n");
}
ok=1;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
if (rom[i][j]==0) rom[i][j]=15000;
if (jul[i][j]==0) jul[i][j]=15000;
}
while (ok)
{
ok=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if (rom[i][j]!=1)
{
if (rom[i+1][j]>rom[i][j]+1)
{
rom[i+1][j]=rom[i][j]+1;
ok=1;
}
if (rom[i+1][j-1]>rom[i][j]+1)
{
rom[i+1][j-1]=rom[i][j]+1;
ok=1;
}
if (rom[i+1][j+1]>rom[i][j]+1)
{
rom[i+1][j+1]=rom[i][j]+1;
ok=1;
}
if (rom[i][j+1]>rom[i][j]+1)
{
rom[i][j+1]=rom[i][j]+1;
ok=1;
}
if (rom[i][j-1]>rom[i][j]+1)
{
rom[i][j-1]=rom[i][j]+1;
ok=1;
}
if (rom[i-1][j]>rom[i][j]+1)
{
rom[i-1][j]=rom[i][j]+1;
ok=1;
}
if (rom[i-1][j-1]>rom[i][j]+1)
{
rom[i-1][j-1]=rom[i][j]+1;
ok=1;
}
if (rom[i-1][j+1]>rom[i][j]+1)
{
rom[i-1][j+1]=rom[i][j]+1;
ok=1;
}
}
}
ok=1;
while (ok)
{
ok=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if (jul[i][j]!=1)
{
if (jul[i+1][j]>jul[i][j]+1)
{
jul[i+1][j]=jul[i][j]+1;
ok=1;
}
if (jul[i+1][j-1]>jul[i][j]+1)
{
jul[i+1][j-1]=jul[i][j]+1;
ok=1;
}
if (jul[i+1][j+1]>jul[i][j]+1)
{
jul[i+1][j+1]=jul[i][j]+1;
ok=1;
}
if (jul[i][j+1]>jul[i][j]+1)
{
jul[i][j+1]=jul[i][j]+1;
ok=1;
}
if (jul[i][j-1]>jul[i][j]+1)
{
jul[i][j-1]=jul[i][j]+1;
ok=1;
}
if (jul[i-1][j]>jul[i][j]+1)
{
jul[i-1][j]=jul[i][j]+1;
ok=1;
}
if (jul[i-1][j-1]>jul[i][j]+1)
{
jul[i-1][j-1]=jul[i][j]+1;
ok=1;
}
if (jul[i-1][j+1]>jul[i][j]+1)
{
jul[i-1][j+1]=jul[i][j]+1;
ok=1;
}
}
}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if (jul[i][j]==rom[i][j]&&rom[i][j]!=15000&&rom[i][j]!=1)
{
printf("%ld %ld %ld \n",jul[i][j]-1,i,j);
return 0;
}
return 0;
}