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