ans
x-wangziji
2022-05-21 15:48:29
20
返回题目
#include<bits/stdc++.h>
using namespace std;
struct node{
int x,y,d;
};
queue<node>q;
char a[1010][1010];
int x,y,u,v;
int dx[4]={0,0,-1,1};
int dy[4]={-1,1,0,0};
int bfs(int x,int y){
q.push(node{x,y,0});
a[x][y]='1';
while(!q.empty()){
node now=q.front();
q.pop();
for(int i=0;i<4;++i){
int nx=now.x+dx[i];
int ny=now.y+dy[i];
if(a[nx][ny]=='1') continue;
if(nx==u&&ny==v)return now.d+1;
q.push(node{nx,ny,now.d+1});
a[nx][ny]='1';
}
}
}
int main(){
int n;
cin>>n;
memset(a,'1',sizeof(a));
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>a[i][j];
cin>>x>>y>>u>>v;
cout<<bfs(x,y);
return 0;
}
{{ vote && vote.total.up }}