Pagini recente » Cod sursa (job #2413229) | Cod sursa (job #55881) | Cod sursa (job #2262080) | Cod sursa (job #627742) | Cod sursa (job #78417)
Cod sursa(job #78417)
#include<stdio.h>
int n,m,a[110][110],rom[110][110],jul[110][110],i,j,ok,min,iafis,jafis;
char aux;
int main()
{
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
scanf("%ld %ld",&n,&m);
scanf("%c",&aux);
j=0;
i=1;
while (!feof(stdin))
{
scanf("%c",&aux);
if (aux!='\n')
{
j++;
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;
}
}
else
{
i++;
j=0;
}
}
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;
}
}
}
min=200000;
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)
{
if (min>jul[i][j])
{
min=jul[i][j];
iafis=i;
jafis=j;
}
}
printf("%ld %ld %ld\n",min-1,iafis,jafis);
fclose(stdout);
return 0;
}