|
|
|
|
#include<stdio.h>
|
|
|
|
|
int n,m,p,q,min=99999999;
|
|
|
|
|
int a[51][51],book[51][51];
|
|
|
|
|
void dfs(int x,int y,int step)
|
|
|
|
|
{
|
|
|
|
|
int next[4][2]={
|
|
|
|
|
{0,1},//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{1,0},//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{0,-1},//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{-1,0},//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
int tx,ty,k;
|
|
|
|
|
if(x==p && y==q) //<2F>ж<EFBFBD><D0B6>Ƿ<C7B7>С<EFBFBD><D0A1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
{
|
|
|
|
|
if(step<min)
|
|
|
|
|
min=step; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
/*ö<><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߷<EFBFBD>*/
|
|
|
|
|
for(k=0;k<=3;k++)
|
|
|
|
|
{
|
|
|
|
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|
|
|
|
tx=x+next[k][0];
|
|
|
|
|
ty=y+next[k][1];
|
|
|
|
|
if(tx<1 || tx>n || ty<1 || ty>m) //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Խ<EFBFBD><D4BD>
|
|
|
|
|
continue;
|
|
|
|
|
/*<2A>жϸõ<CFB8><C3B5>Ƿ<EFBFBD>Ϊ<EFBFBD>ϰ<EFBFBD><CFB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>*/
|
|
|
|
|
if(a[tx][ty]==0 && book[tx][ty]==0)
|
|
|
|
|
{
|
|
|
|
|
book[tx][ty]=1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE>߹<EFBFBD>
|
|
|
|
|
dfs(tx,ty,step+1); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
|
|
|
|
book[tx][ty]=0; //<2F><><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int main()
|
|
|
|
|
{
|
|
|
|
|
int i,j,startx,starty;
|
|
|
|
|
scanf("%d %d",&n,&m); //<2F><><EFBFBD><EFBFBD>n<EFBFBD><6E>m<EFBFBD><6D>nΪ<6E>У<EFBFBD>mΪ<6D><CEAA>
|
|
|
|
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD>*/
|
|
|
|
|
for(i=1;i<=n;i++)
|
|
|
|
|
for(j=1;j<=m;j++)
|
|
|
|
|
scanf("%d",&a[i][j]);
|
|
|
|
|
scanf("%d %d %d %d",&startx,&starty,&p,&q); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD>㿪ʼ<E3BFAA><CABC><EFBFBD><EFBFBD>*/
|
|
|
|
|
book[startx][starty]=1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>·<EFBFBD><C2B7><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>
|
|
|
|
|
dfs(startx,starty,0); //<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD>꣬<EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD>꣬<EFBFBD><EAA3AC>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>Ϊ0
|
|
|
|
|
printf("%d",min); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̲<EFBFBD><CCB2><EFBFBD>
|
|
|
|
|
return 0;
|
|
|
|
|
}
|