51,716
社区成员




#include<bits/stdc++.h>
using namespace std;
const int N = 1001;
int x1,y11,x2,y2,n;
int dx[]= {0,1,-1,0};
int dy[]= {1,0,0,-1};
int vis[N][N];
char s[N][N];
struct node{
int x,y,ans;
};
queue<node>q;
int bfs()
{
s[x1][y11]='1';
q.push({x1,y11});
while(q.size())
{
node t=q.front();
q.pop();
if(t.x==x2&&t.y==y2)
return t.ans;
for(int i=0;i<4;i++)
{
int nx=t.x+dx[i];
int ny=t.y+dy[i];
if(nx>0&&nx<=n&&ny>0&&ny<=n&&s[nx][ny]=='0')
{
s[nx][ny]='1';
q.push({nx,ny,t.ans+1});
}
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>s[i][j];
cin>>x1>>y11>>x2>>y2;
cout<<bfs();
return 0;
}