|
|
|
|
/*
|
|
|
|
|
5 4
|
|
|
|
|
0 0 1 0
|
|
|
|
|
0 0 0 0
|
|
|
|
|
0 0 1 0
|
|
|
|
|
0 1 0 0
|
|
|
|
|
0 0 0 1
|
|
|
|
|
1 1 4 3
|
|
|
|
|
*/
|
|
|
|
|
#include<stdio.h>
|
|
|
|
|
struct note {
|
|
|
|
|
int x; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int y; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int f; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD>еı<D0B5><C4B1>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD>ⲻ<EFBFBD><E2B2BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD>Ҫf<D2AA><66>
|
|
|
|
|
int s; //<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
};
|
|
|
|
|
int main() {
|
|
|
|
|
struct note que[2501]; //<2F><>Ϊ<EFBFBD><CEAA>ͼ<EFBFBD><CDBC>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>50*50<35><30><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD>ᳬ<EFBFBD><E1B3AC>2500<30><30>
|
|
|
|
|
|
|
|
|
|
int a[51][51] = {0}; //<2F><><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2>ͼ
|
|
|
|
|
int book[51][51] = {0}; //<2F><><EFBFBD><EFBFBD>book<6F><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>¼<EFBFBD><C2BC>Щ<EFBFBD><D0A9><EFBFBD>Ѿ<EFBFBD><D1BE>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD>ֹһ<D6B9><D2BB><EFBFBD>㱻<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>Ϊ0
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>ʾ<EFBFBD>ߵķ<DFB5><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int next[4][2] = { //˳ʱ<CBB3>뷽<EFBFBD><EBB7BD>
|
|
|
|
|
{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 head,tail;
|
|
|
|
|
int i,j,k,n,m,startx,starty,p,q,tx,ty,flag;
|
|
|
|
|
|
|
|
|
|
scanf("%d %d",&n,&m);
|
|
|
|
|
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><CABC>
|
|
|
|
|
head = 1;
|
|
|
|
|
tail = 1;
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
que[tail].x = startx;
|
|
|
|
|
que[tail].y = starty;
|
|
|
|
|
que[tail].f = 0;
|
|
|
|
|
que[tail].s = 0;
|
|
|
|
|
tail++;
|
|
|
|
|
book[startx][starty] = 1;
|
|
|
|
|
|
|
|
|
|
flag = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<C7B7>Ŀ<EFBFBD><C4BF><EFBFBD>㣬0<E3A3AC><30>ʾ<EFBFBD><CABE>ʱû<CAB1>е<EFBFBD><D0B5> 1<><31>ʾ<EFBFBD>ѵ<EFBFBD><D1B5><EFBFBD>
|
|
|
|
|
while(head < tail) { //<2F><><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>Ϊ<EFBFBD><CEAA>ʱѭ<CAB1><D1AD>
|
|
|
|
|
for(k=0; k<=3; k++) { //ö<><C3B6><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
tx = que[head].x + next[k][0];
|
|
|
|
|
ty = que[head].y + next[k][1];
|
|
|
|
|
if(tx < 1 || tx > n || ty < 1 || ty > m) //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD>Խ<EFBFBD><D4BD>
|
|
|
|
|
continue;
|
|
|
|
|
if(a[tx][ty] == 0 && book[tx][ty] == 0) { //<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ϰ<EFBFBD><CFB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
|
|
|
|
|
book[tx][ty] = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>Ѿ<EFBFBD><D1BE>߹<EFBFBD><DFB9><EFBFBD>ע<EFBFBD><D7A2>bfsÿ<73><C3BF><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>һ<EFBFBD>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѳ<EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>book<6F><6B><EFBFBD>黹ԭ
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>µĵ㵽<C4B5><E3B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
que[tail].x = tx;
|
|
|
|
|
que[tail].y = ty;
|
|
|
|
|
que[tail].f = head; //<2F><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD>head<61><64>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>head<61><64><EFBFBD><EFBFBD><EFBFBD>ⲻ<EFBFBD><E2B2BB>Ҫ<EFBFBD><D2AA>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>ʡ<EFBFBD><CAA1>
|
|
|
|
|
que[tail].s = que[head].s+1; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8>IJ<D7B5><C4B2><EFBFBD>+1
|
|
|
|
|
tail++;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if(tx == p && ty == q) { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>ֹͣ<CDA3><D6B9>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>ѭ<EFBFBD><D1AD>
|
|
|
|
|
flag = 1; //<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>䲻Ҫд<D2AA><D0B4>
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(flag == 1)
|
|
|
|
|
break;
|
|
|
|
|
head++; //<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F3A3ACB2>ܶԺ<DCB6><D4BA><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5>ٽ<EFBFBD><D9BD><EFBFBD><EFBFBD><EFBFBD>չ
|
|
|
|
|
}
|
|
|
|
|
printf("%d",que[tail-1].s); //<2F><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĩβ<C4A9><CEB2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>㣬Ҳ<E3A3AC><D2B2><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
|
|
|
|
|
//ע<><D7A2>tail<69><6C>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һλ<D2BB><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>1
|
|
|
|
|
getchar();
|
|
|
|
|
getchar();
|
|
|
|
|
return 0;
|
|
|
|
|
}
|