代码
#include<iostream>
#include<cstdio>
using namespace std;
int n,a[1010][1010],b[100010],c[100010],s=1,s1,m,o1,o2,p1,p2;
int dx[5]={0,0,-1,0,1};
int dy[5]={0,-1,0,1,0};
void dfs(int x,int y,int k)
{
for(int i=1;i<=4;i++)
{
int xx=x+dx[i];
int yy=y+dy[i];
if(xx>0&&xx<=n&&yy>0&&yy<=m&&a[xx][yy]==1)
{
a[xx][yy]=0;
b[k]=xx;
c[k]=yy;
if(xx==p1&&yy==p2)
{
cout<<"(1,1)";
for(int j=1;j<=k;j++)
{
cout<<"->("<<b[j]<<','<<c[j]<<')';
s1++;
}
cout<<endl;
}
else
{
dfs(xx,yy,k+1);
}
a[xx][yy]=1;
b[k]=0;
c[k]=0;
}
}
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
}
}
cin>>o1>>o2>>p1>>p2;
a[o1][o2]=0;
dfs(o1,o2,1);
if(s1==0)
{
cout<<-1;
}
return 0;
}