Pagini recente » Cod sursa (job #756157) | Cod sursa (job #963470) | Cod sursa (job #773447) | Cod sursa (job #2347855) | Cod sursa (job #111242)
Cod sursa(job #111242)
#include<stdio.h>
FILE *f=fopen("rj.in","r");
FILE *g=fopen("rj.out","w");
int a[101][101],b[101][101],i,j,r1,r2,j1,j2,n,m;
char x[110];
void lee(int a[101][101],int q,int w)
{
int contor=1;
int ok=1;
a[q][w]=1;
while(ok==1)
{
ok=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(a[i][j]==contor)
{
if(a[i+1][j]==0)
{
a[i+1][j]=contor+1;
ok=1;
}
if(a[i][j+1]==0)
{
a[i][j+1]=contor+1;
ok=1;
}
if(a[i-1][j]==0)
{
a[i-1][j]=contor+1;
ok=1;
}
if(a[i][j-1]==0)
{
a[i][j-1]=contor+1;
ok=1;
}
if(a[i-1][j-1]==0)
{
a[i-1][j-1]=contor+1;
ok=1;
}
if(a[i+1][j+1]==0)
{
a[i+1][j+1]=contor+1;
ok=1;
}
if(a[i+1][j-1]==0)
{
a[i+1][j-1]=contor+1;
ok=1;
}
if(a[i-1][j+1]==0)
{
a[i-1][j+1]=contor+1;
ok=1;
}
}
}
contor++;
}
}
int main()
{
int indi,indj,smin;
fscanf(f,"%d",&n);
fscanf(f,"%d",&m);
fgets(x,m+1,f);
for(i=1;i<=n;i++)
{
fgets(x,120,f);
for(j=0;j<m;j++)
{
if(x[j]=='X')
{
a[i][j+1]=-1;
b[i][j+1]=-1;
}
if(x[j]=='R')
{
r1=i;
r2=j+1;
}
if(x[j]=='J')
{
j1=i;
j2=j+1;
}
}
}
lee(a,r1,r2);
lee(b,j1,j2);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]==b[i][j] && a[i][j]>0)
{
if(smin>a[i][j])
{
smin=a[i][j];
indi=i;
indj=j;
}
else if(smin==a[i][j])
{
if(indi>i)
{
indi=i;
indj=j;
}
else
if(indi==i)
if(indj>j)
indj=j;
}
}
fprintf(g,"%d %d %d",smin,indi,indj);
fcloseall();
return 0;
}