讨论 / 呵呵~~^_^
275051081 2015-04-22 03:19:03
点我顶贴 收藏 删除
#include<stdio.h>

#include<stdlib.h>

int a[1001][1001],book[1001][1001];

struct point

{

int x;

int y;

int s;

}quen[1000001];

int main()

{

int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}};

int i,j,stx,sty,p,q,n,head,tail,k,tx,ty,flag=0;

scanf("%d",&n);

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

scanf("%d",&a[i][j]);

scanf("%d%d",&stx,&sty);

scanf("%d%d",&p,&q);

head=tail=1;

quen[tail].s=0;

quen[tail].x=stx;

quen[tail].y=sty;

book[stx][sty]=1;

tail++;

while(head<tail)

{

for(k=0;k<=3;k++)

{

tx=next[k][0]+quen[head].x;

ty=quen[head].y+next[k][1];

if(tx<1||ty<1||tx>n||ty>n)

continue;

if(book[tx][ty]==0&&a[tx][ty]==0)

{

book[tx][ty]=1;

quen[tail].x=tx;

quen[tail].y=ty;

quen[tail].s=quen[head].s+1;

tail++;

}

if(tx==p&&ty==q)

{

flag=1;

break;

}

}

if(flag==1)

break;

head++;

}

printf("%d\n",quen[tail-1].s);

system("pause");

return 0;

}

查看更多回复
提交回复