有一个迷宫,迷宫里有一个人,迷宫是规格为 N*N 的方格,房内特定位置上有障碍物,人处于某一位置,可以选择向上下左右方向前进,但是要保证面对的不是墙壁或是障碍物,否则无法向前行走。
输入
迷宫的规格,一个正整数 N (2<=N<=100),占一行,代表矩阵大小;输入方形矩阵 N 行 N 列,由 0 和 1 组成,其中 0 代表空地,1 代表障碍物;输入一对数据 m,n(第 m 行,第 n 列),表示人所在的位置坐标(保证人所在的位置为“0”,即空地),以空格隔开,占一行;输入一个整数表示要尝试的前进方向,0、1、2、3分别代表左、下、右、上。
输出
“Y”
表示可以向该方向前进
“N”
表示无法向该方向前进
输出占一行。
输入样例
4
1 0 0 0
1 1 1 0
0 0 1 0
1 0 0 1
0 3
1
输出样例
Y
#include <stdio.h>
int main(void)
{
int n;//输入迷宫的规格
scanf("%d", &n);
int matrix[n][n];
int X[4] = {0, 1, 0, -1};
int Y[4] = {-1, 0, 1, 0};
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
scanf("%d", &matrix[i][j]);
}
}
int x, y;
scanf("%d%d", &x, &y);
int k;
scanf("%d", &k);
x += X[k];
y += Y[k];
if(x < 0 || x >= n || y < 0 || y >= n || matrix[x][y] == 1)
{
printf("N\n");
}
else
{
printf("Y\n");
}
return 0;
}