#include <bits/stdc++.h>
using namespace std;
int a[17][17]={0};
int v[17][17]={0};
int dy[]={-1,0,1,0};
int dx[]={0,-1,0,1};//四个方向,左上右下;
int x2,y2,q,w;
int s[50000][2];
int sum=0,e=0;
void print(){
int i;
if (sum==0){
sum=1;
}
for (i=0;i<e;i++){
cout<<"("<<s[i][0]<<","<<s[i][1]<<")"<<"->";
}
cout<<"("<<x2<<","<<y2<<")"<<endl;
}
void dfs(int strax,int stray){
int i;
if (strax==x2&&stray==y2){
print();
return;
}
else{
for (i=0;i<4;i++){
int tx,ty;
tx=strax+dx[i];
ty=stray+dy[i];
if (v[tx][ty]==0&&a[tx][ty]==1&&tx>=1&&tx<=q&&ty>=1&&ty<=w){
v[tx][ty]=1;
s[e][0]=strax;
s[e][1]=stray;
e++;
dfs(tx,ty);
v[tx][ty]=0;
e--;
}
}
}
}
int main(){
int i,j,k,x,y,x1,y1;
cin>>q>>w;
for (i=1;i<=q;i++){
for (j=1;j<=w;j++){
cin>>a[i][j];
}
}
cin>>x1>>y1>>x2>>y2;
v[x1][y1]=1;
dfs(x1,y1);
if (sum==0){
cout<<"-1";
}
}
P1238 走迷宫
最新推荐文章于 2021-11-30 10:01:26 发布