#include <bits/stdc++.h>
using namespace std;
int a[10][10];
int v[10][10]={0};
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
struct st{
int a;
int b;
};
st c[1010][1010];
void bfs(int x,int y){
int i;
queue<pair<int,int> > q;
q.push(make_pair(x,y));
v[x][y]=1;
while(!q.empty()){
for (i=0;i<4;i++){
int tx,ty;
tx=q.front().first+dx[i];
ty=q.front().second+dy[i];
if (tx>=0&&tx<=4&&ty>=0&&ty<=4&&v[tx][ty]==0&&a[tx][ty]==0){
v[tx][ty]=1;
q.push(make_pair(tx,ty));
st e;
e.a=q.front().first;
e.b=q.front().second;
c[tx][ty]=e;
}
}
q.pop();
}
}
int main(){
int i,j;
for (i=0;i<5;i++){
for (j=0;j<5;j++){
cin>>a[i][j];
}
}
bfs(4,4);
st end={0,0};
cout<<"(0, 0)"<<endl;
while(end.a!=4||end.b!=4){
cout<<"("<<c[end.a][end.b].a<<", "<<c[end.a][end.b].b<<")"<<endl;
int tx=end.a;int ty=end.b;
end.a=c[tx][ty].a;end.b=c[tx][ty].b;
}
} ```
dotcpp 2178
最新推荐文章于 2024-03-05 20:42:43 发布