Problem10198--洛谷P4554 - 小明的游戏

10198: 洛谷P4554 - 小明的游戏

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 512 MiB

Description

小明最近喜欢玩一个游戏。给定一个$n \times m$的棋盘,上面有两种格子`#`和`@`。游戏的规则很简单:给定一个起始位置和一个目标位置,小明每一步能向上,下,左,右四个方向移动一格。如果移动到同一类型的格子,则费用是$0$,否则费用是$1$。请编程计算从起始位置移动到目标位置的最小花费。

Input

输入文件有多组数据。   
输入第一行包含两个整数$n$,$m$,分别表示棋盘的行数和列数。   
输入接下来的$n$行,每一行有$m$个格子(使用`#`或者`@`表示)。   
输入接下来一行有四个整数$x_1, y_1, x_2, y_2$,分别为起始位置和目标位置。   
当输入$n$,$m$均为$0$时,表示输入结束。

Output

对于每组数据,输出从起始位置到目标位置的最小花费。每一组数据独占一行。

Constraints

对于 $20\%$ 的数据满足:$1 \le n, m \le 10$。   
对于 $40\%$ 的数据满足:$1 \le n, m \le 300$。   
对于 $100\%$ 的数据满足:$1 \le n, m \le 500$。

Sample 1 Input

2 2
@#
#@
0 0 1 1
2 2
@@
@#
0 1 1 0
0 0

Sample 1 Output

2
0

HINT

相同题目:洛谷P4554

EDITORIAL

Source/Category

01BFS