#9#10TLE
#15WA
代码如下,求dalao指点
#include<iostream>
using namespace std;
int n,m,x,y,xx,yy,a[15][15];
int map[15][3];
int dx[5]={0,0,-1,0,1};
int dy[5]={0,-1,0,1,0};
bool flag=1,f[15][15];
void Print(int U);
void DFS(int i,int j,int k){
if(i==xx&&j==yy){
cout<<'('<<x<<','<<y<<')'<<"->";
Print(k);
flag=0;
}else{
for(int T=1;T<=4;T++){
if(i+dx[T]>=1&&i+dx[T]<=m&&j+dy[T]>=1&&j+dy[T]<=n&&a[i+dx[T]][j+dy[T]]&&!f[i+dx[T]][j+dy[T]]){
f[i+dx[T]][j+dy[T]]=1;
map[k][1]=i+dx[T];
map[k][2]=j+dy[T];
DFS(i+dx[T],j+dy[T],k+1);
f[i+dx[T]][j+dy[T]]=0;
}
}
}
}
void Print(int U){
for(int i=1;i<U;i++){
cout<<'('<<map[i][1]<<','<<map[i][2]<<')';
if(i!=U-1){
cout<<"->";
}else{
cout<<"\n";
}
}
}
int main(){
cin>>m>>n;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
cin>>x>>y>>xx>>yy;
f[x][y]=1;
DFS(x,y,1);
if(flag)cout<<-1;
return 0;
}
//码风不太好