| 比赛 | 
    板子大赛 | 
    评测结果 | 
    AAAAAAAAAA | 
    | 题目名称 | 
    走迷宫 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    李奇文 | 
    运行时间 | 
    0.033 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    3.38 MiB  | 
    | 提交时间 | 
    2025-01-22 15:49:36 | 
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int a[17][17],s[17][17],n,m,bx,by,ex,ey;
const string c[16]={"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"};
bool t;
int d[4][2]={{0,-1},{-1,0},{0,1},{1,0}};
void dfs(int bx,int by,string ans){
    if(bx==ex&&by==ey){
		std::cout<<ans<<endl;
		t=1;
	}	
    for(int i=0;i<4;i++){
        int x=bx+d[i][0],y=by+d[i][1];        
        if(a[x][y]==1&&s[x][y]==0){
            s[x][y]=s[bx][by]+1;
            dfs(x,y,ans+"->"+"("+c[x]+","+c[y]+")");
            s[x][y]=0;
        }
    }
}
int main(){
	freopen("maize.in","r",stdin);
	freopen("maize.out","w",stdout);
    cin>>n>>m;
    for(int i=1;i<=n;i++){
    	for(int j=1;j<=m;j++){
    		cin>>a[i][j];
		}
	}
    std::cin>>bx>>by>>ex>>ey;
	s[bx][by]=1;    
    dfs(bx,by,"("+c[bx]+","+c[by]+")"); 
    if(!t){
    	std::cout<<-1<<endl;    
	}
    return 0;
}