比赛 |
板子大赛 |
评测结果 |
AAAAAAAAAA |
题目名称 |
走迷宫 |
最终得分 |
100 |
用户昵称 |
喵喵喵 |
运行时间 |
0.034 s |
代码语言 |
C++ |
内存使用 |
3.32 MiB |
提交时间 |
2025-01-22 09:24:39 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
using namespace std;
int sum[50000][2];
int ax,ay,bx,by,k,pd;
int cx[4]={0,-1,0,1};
int cy[4]={-1,0,1,0};
bool temp[17][17];
int map[17][17];
void print()
{
if(pd==0)
{
pd=1;
}
for(int h=0;h<=k-1;h++)
cout<<"("<<sum[h][0]<<","<<sum[h][1]<<")"<<"->";
cout<<"("<<bx<<","<<by<<")"<<endl;
}
void walk(int x,int y)
{
if(x==bx&&y==by)
{
print();
return;
}
else
{
for(int i=0;i<=3;i++)
{
if(map[x+cx[i]][y+cy[i]]==1&&temp[x+cx[i]][y+cy[i]]==0)
{
temp[x][y]=1;
sum[k][0]=x;
sum[k][1]=y;
k++;
walk(x+cx[i],y+cy[i]);
temp[x][y]=0;
k--;
}
}
}
}
int main()
{
freopen("maize.in","r",stdin);
freopen("maize.out","w",stdout);
int m,n;
cin >> m >> n;
for(int i = 1;i <= m;i++)
for(int j = 1;j <= n;j++)
cin >> map[i][j];
cin >> ax >> ay;
cin >> bx >> by;
walk(ax,ay);
if(pd == 0) cout<<"-1";
return 0;
}