比赛 板子大赛 评测结果 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;
}