Pagini recente » Cod sursa (job #505500) | Cod sursa (job #1301261) | Cod sursa (job #1588731) | Cod sursa (job #343506) | Cod sursa (job #254340)
Cod sursa(job #254340)
#include<stdio.h>
#define DIM 51
struct coada {int x,y;} c[DIM*DIM];
int dx[4]={-1,0,1, 0};
int dy[4]={ 0,1,0,-1};
int a[DIM][DIM],b[DIM][DIM];
int n,m,x1,y1,x2,y2,k2,x,y,k;
int main ()
{
freopen("kdrum.in","r",stdin);
freopen("kdrum.out","w",stdout);
int i,j;
scanf("%d%d%d%d%d%d%d",&n,&m,&k2,&x1,&y1,&x2,&y2);
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
{
scanf("%d",&b[i][j]);
if(b[i][j]==0)
a[i][j]=-1;
else
a[i][j]=0;
}
for (i=1; i<=n; ++i)
a[i][0]=a[i][n+1]=a[0][i]=a[n+1][i]=-1;
int in=1,sf=1;
c[in].x=x1;
c[in].y=y1;
while (in<=sf)
{
x=c[in].x;
y=c[in].y;
for (k=0; k<4; ++k)
if (a[x+dx[k]][y+dy[k]]==0)
{
a[x+dx[k]][y+dy[k]]=a[x][y]+1;
++sf;
c[sf].x=x+dx[k];
c[sf].y=y+dy[k];
}
in++;
}
printf("%d",++a[x2][y2]);
return 0;
}