#include<bits/stdc++.h>
using namespace std;
int n,Road[1001][1001];
char a[1001][1001];
queue<pair<int,int>> q;
bool ok(int x,int y){
if(x<0 || x>(n-1) || y<0 || y>(n-1) || a[x][y]=='1') return 0;
return 1;
}
int main(){
cin>>n;
memset(Road,-1,sizeof(Road));
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
cin>>a[i][j];
}
int start_x,start_y;
int end_x,end_y;
cin>>start_x>>start_y>>end_x>>end_y;
start_x--;
start_y--;
end_x--;
end_y--;
q.push(make_pair(start_x,start_y));
Road[start_x][start_y]=0;
int move_x[4]={0,1,-1,0};
int move_y[4]={1,0,0,-1};
pair<int,int> p;
while(!q.empty()){
p=q.front();
q.pop();
int x=p.first;
int y=p.second;
int nx,ny;
for(int i=0;i<4;i++){
nx=x+move_x[i];
ny=y+move_y[i];
if(ok(nx,ny)==1 && Road[nx][ny]==-1){
q.push(make_pair(nx,ny));
Road[nx][ny]=Road[x][y]+1;
}
}
}
cout<<Road[end_x][end_y];
return 0;
}
#993 哪里错了?
2023-05-23 20:32:44 By Will.Pam
评论
Will.Pam
@xushuoxin
@std
- 2023-05-23 20:34:00
发表评论
可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。