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