#89. [WPXCO 1.7 OCT] [动态规划] [搜索] Double Properties

内存限制:256 MiB 时间限制:1000 ms 输入文件:properties.in 输出文件:properties.out
题目类型:传统 评测方式:文本比较
上传者: 2024-J-W010

题目描述

地面被划分为 个网格,每个网格有以下 种性质:

  • 性质
  • 性质
  • 性质与 性质(双性质 / 性质)

你站在地面的 处,想要获得 处的宝藏,则需要通过若干网格。

假设你现在位于 处,性质为 ,则你的移动必须满足如下两个条件:

  • 下一步移动到的格子与当前你所站在的格子有公共边。
  • 下一步移动到的格子的性质必须是 性质或双性质。

特殊的是,如果当前你所站在的格子的性质是双性质,则你可以向任意相邻位置移动。

判断你是否可以获得宝藏。如果可以,输出最小移动的格子数。

输入格式

第一行两个正整数 表示地面被网格划分的次数。

接下来 行,每行 个用空格分隔的字符表示地面。

输出格式

一行一个整数表示答案。如果无法到达,输出 ,否则输出最小移动的格子数。

样例

样例 #1

样例输入 #1

3 3
A B D
A D B
B D B

样例输出 #1

5

样例解释 #1

的顺序移动。

样例 #2

样例输入 #2

3 3
B B A
A A B
D A B

样例输出 #2

-1

样例解释 #2

无论怎么走都无法到达 处。

数据范围与提示

对于 的输入,保证