#PTA1003. 奇偶迷宫
奇偶迷宫
奇偶迷宫
小红来到了一座神秘的迷宫。
迷宫可以看作一个 的网格,每个格子要么是空地,要么是墙壁:
'.' 表示可以通过的空地,'#' 表示无法通过的墙壁。
小红从起点 出发,想要到达终点 。
在迷宫中,小红的移动方式与当前所在格子的 坐标奇偶性 有关:
如果当前格子的 为 偶数,则小红只能向 上、下、左、右 四个方向移动一格。
如果当前格子的 为 奇数,则小红可以向 八个方向(上下左右以及四个对角线方向)移动一格。
无论哪种情况,小红都不能走出迷宫边界和进入墙壁格子。
请你判断小红是否能够从起点到达终点。
如果可以到达,请输出 ,并输出到达终点所需要的 最少步数。
如果无法到达,请输出 。
输入描述
第一行输入六个正整数 $n,m(1 \le n, m \le 10^3),x1,y1(1 \le x1,x2 \le n),x2,y2(1 \le y1, y2 \le m)$ 表示迷宫的行数、列数、起点坐标和终点坐标。
接下来 n 行,每行包含 m 个字符,表示迷宫地图。
保证每个字符为 . 或 #。
输出描述
如果可以到达终点,输出两行:
YES
最少步数
如果无法到达终点,输出:
NO
示例1
输入
5 5 1 1 5 5
.....
.###.
.....
.###.
.....
输出
YES
6
解释
一种可行最短路线:(1,1) -> (2,1) -> (3,2) -> (3,3) -> (3,4) -> (4,5) -> (5,5)
示例2
输入
5 5 1 1 5 5
.....
.###.
.....
.####
.#...
输出
NO