走迷宫
时限: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 }