#D0622. 跑车

跑车

题目描述

给定一个 nnmm 列的棋盘。棋盘上如果是 . 则表示可以走棋,如果是 # 则表示不能走。

现在棋盘上有一枚“车”。一次操作可以把“车”横着走或者竖着走任意格(也可以停在原地不移动),但走的路径必须保证中间没有 #

现在“车”在 xxyy 列。求最少几次操作后“车”能到达棋盘的边缘位置,如果无法到达,输出 -1

输入格式

第一行为 n,m,x,yn,m,x,y

接下来 nn 行,每行都有 mm 个字符,即整个棋盘的状态。

输出格式

一行一个整数,即最少几次操作后车能到达棋盘的边缘位置,如果无法到达,输出 -1

5 5 2 4
#.###
..#.#
....#
.#.#.
#####
2

样例解释

“车”最少操作 22 次,对应的路径是:

#.###
..#x#
xxxx#
.#.#.
#####

数据规模与约定

  • 对于 20%20\% 的数据,保证棋盘中没有 #
  • 对于 100%100\% 的数据,1n,m1001 \le n,m \le 1001xn1\le x\le n1ym1\le y\le m
  • 题目保证“车”的初始位置上的棋盘状态是 .