rt,样例输出-1,不知道为什么,大佬们看看代码那里有问题
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
bool a[20][20];
int n,m,ans,n1,n2,m1,m2,b[20][20],c[5000000][2],p;
void print(){
for(int i=1;i<p;i++){
cout<<"("<<c[i][0]<<","<<c[i][1]<<")->";
}
cout<<"("<<c[p][0]<<","<<c[p][1]<<")"<<endl;
ans++;
}
void dfs(int x,int y){
if(x==m1&&y==m2){
print();x=n1;y=n2;
}
if(x>1&&a[x-1][y]==1&&b[x-1][y]!=1){
b[x-1][y]=1;
p++;
c[p][0]=x;c[p][1]=y;
dfs(x-1,y);
b[x-1][y]=0;
p--;
}
if(y>1&&a[x][y-1]==1&&b[x][y-1]!=1){
b[x][y-1]=1;
p++;
c[p][0]=x;c[p][1]=y;
dfs(x,y-1);
b[x][y-1]=0;
p--;
}
if(x<n&&a[x+1][y]==1&&b[x+1][y]!=1){
b[x+1][y]=1;
p++;
c[p][0]=x;c[p][1]=y;
dfs(x+1,y);
b[x+1][y]=0;
p--;
}
if(y<n&&a[x][y+1]==1&&b[x][y+1]!=1){
b[x][y+1]=1;
p++;
c[p][0]=x;c[p][1]=y;
dfs(x,y+1);
b[x][y+1]=0;
p--;
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
cin>>n1>>n2>>m1>>m2;
dfs(n1,n2);
if(ans==0)cout<<-1;
return 0;
}