各位大佬看看我的代码
#include<bits/stdc++.h>
using namespace std;
const int M=1e8+5;
struct A{
int x,y;
}ans[M];
int xx[4]={0,-1,0,1},yy[4]={-1,0,1,0},x_1,y_1,a,n,m,x_2,y_2;
bool b[5000][5000];
void dfs(int x,int y,int z){
ans[z].x=x,ans[z].y=y;
if(x==x_1&&y==y_1){
for(int i=1;i<=z;i++){
if(i==1)cout<<"("<<ans[i].x<<","<<ans[i].y<<")";
else cout<<"->"<<"("<<ans[i].x<<","<<ans[i].y<<")";
}
cout<<"\n";
a++;
return ;
}
for(int i=0;i<4;i++){
int dx=x+xx[i],dy=y+yy[i];
if(b[dx][dy]&&dx>=1&&dx<=n&&dy>=1&&dy<=m){
b[dx][dy]=0;
dfs(dx,dy,z+1);
b[dx][dy]=1;
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>b[i][j];
}
}
cin>>x_2>>y_2>>x_1>>y_1;
b[x_2][x_2]=0;
dfs(x_2,x_2,1);
if(a==0)cout<<-1;
return 0;
}