poj3009

时间:2024-08-28 18:34:50
#include <stdio.h>
int H,L;
int qx,qy,zx,zy;
int map[21][21];
int ax[4]={-1,0,1,0};
int ay[4]={0,-1,0,1};

void dfs(int x , int y , int step)
{
	if(step>10)
	{
		return ;
	}
	int tx,ty;
	for(int i=0;i<4;i++)
	{
		if(map[x+ax[i]][y+ay[i]]==0)
		{
			tx=x+ax[i];
			ty=y+ay[i];
			while(map[tx][ty]==0)
			{
				tx=tx+ax[i];
				ty=ty+ay[i];

			}
		}
	}
}
void main()
{
	freopen("in.txt","r",stdin);
	while(1)
	{
		scanf("%d %d",&L,&H);
		if(L==0&&H==0)
			break;
		for(int i=0;i<H;i++)
		{
			for(int j=0;j<L;j++)
			{
				scanf("%d",&map[i][j]);
				if(map[i][j]==2)
				{
					qx=i;
					qy=j;
					map[i][j]=0;
				}
				if(map[i][j]==3)
				{
					zx=i;
					zy=j;
				}
			}
		}

		dfs(qx,qy,0);

	}
}