比赛 |
板子大赛 |
评测结果 |
AAAAAAAAAA |
题目名称 |
走迷宫 |
最终得分 |
100 |
用户昵称 |
AeeE5x |
运行时间 |
0.030 s |
代码语言 |
C++ |
内存使用 |
3.50 MiB |
提交时间 |
2025-01-22 13:13:47 |
显示代码纯文本
- #include<iostream>
- #include<vector>
- using namespace std;
- int n,m,sx,sy,ex,ey;
- bool mp[21][21],isf=1;
-
- struct node{int x,y;};
- vector<node> ans;
-
- int wa[4][2]={{-1,0},{0,-1},{0,1},{1,0}};
- bool vis[21][21];
-
- void dfs(int x,int y){
- vis[x][y]=1;
- ans.push_back((node){x,y});
- if(x==ex&&y==ey){
- printf("(%d,%d)",sx,sy);
- for(int i=1;i<ans.size();i++) printf("->(%d,%d)",ans[i].x,ans[i].y);
- printf("\n");
- isf=0;
- }else{
- for(int i=0;i<4;i++){
- int xx=x+wa[i][0];
- int yy=y+wa[i][1];
- if(xx<=0||yy<=0||xx>n||yy>m||!mp[xx][yy]||vis[xx][yy]) continue;
- dfs(xx,yy);
- }
- }
- vis[x][y]=0;
- ans.pop_back();
- }
- int main(){
- freopen("maize.in","r",stdin);
- freopen("maize.out","w",stdout);
-
- scanf("%d%d",&n,&m);
- for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%d",&mp[i][j]);
-
- scanf("%d%d%d%d",&sx,&sy,&ex,&ey);
-
- dfs(sx,sy);
- if(isf) cout<<"-1";
-
- return 0;
- }