Pagini recente » Cod sursa (job #1360029) | Cod sursa (job #3216420) | Cod sursa (job #2728772) | Cod sursa (job #2504471) | Cod sursa (job #78477)
Cod sursa(job #78477)
#include<stdio.h>
int n,m,a[110][110],rom[110][110],jul[110][110],i,j,ok,min,iafis,jafis,k;
char aux,siru[200];
int main()
{
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
scanf("%ld %ld",&n,&m);
for(i=0;i<=n;i++)
{
fgets(siru,114,stdin);
j=0;
for(k=0;k<m;k++)
{
aux=siru[k];
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
break;
}
}
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;
}