走迷宫

时限:1000ms 内存限制:10000K 总时限:3000ms

描述:

 

判断是否能从迷宫的入口到达出口

输入:

 

先输入两个整数表示迷宫的行数m和列数n,再输入口和出口的坐标,最后分m行输入迷宫,其中1表示墙,0表示空格每个数字之间都有空格。

输出:

 

若能到达,则输出"Yes",否则输出"No",结果占一行。

输入样例:

 

3 3
0 0
2 2
0 0 0
1 1 0
0 1 0

输出样例:

 

Yes

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int a[10000][10000],h,l;
 4 void search(int i,int j)
 5 {
 6     if(a[i][j]==0)
 7     {
 8         a[i][j]=2;
 9         if(j-1>=0)
10             search(i,j-1);
11         if(i+1<h)
12             search(i+1,j);
13         if(j+1<l)
14             search(i,j+1);
15         if(i-1>=0)
16             search(i-1,j);
17     }
18 }
19 int main()
20 {
21     scanf("%d %d",&h,&l);
22     int i,j,m,n;
23     scanf("%d %d",&i,&j);
24     scanf("%d %d",&m,&n);
25     int t,b;
26     for(t=0; t<h; t++)
27         for(b=0; b<l; b++)
28             scanf("%d",&a[t][b]);
29     search(i,j);
30     if(a[m][n]==2)
31         printf("Yes\n");
32     else
33         printf("No\n");
34     return 0;
35 }