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