棋盘的最小花费
题目描述
给定一个大小为n * m的棋盘,棋盘上只有两种类型的格子,'#'和'@'。
一个格子移动到相邻上下左右四方向的格子的花费计算方式为:如果移动到的格子和当前格子的类型相同,则花费为0,不同花费为1。
给定棋盘的出发点和终点坐标,请计算出从出发点到终点的最少花费。
一个格子移动到相邻上下左右四方向的格子的花费计算方式为:如果移动到的格子和当前格子的类型相同,则花费为0,不同花费为1。
给定棋盘的出发点和终点坐标,请计算出从出发点到终点的最少花费。
输入
输入文件有多组数据(不超过5组)。
输入第一行包含两个整数n,m,分别表示棋盘的行数和列数。
输入接下来的n行,每一行有m个格子(使用#或者@表示)。
输入接下来一行有四个整数x1,y1,x2,y2,分别为起始位置和目标位置。
当输入n,m 均为0时,表示输入结束。
输入第一行包含两个整数n,m,分别表示棋盘的行数和列数。
输入接下来的n行,每一行有m个格子(使用#或者@表示)。
输入接下来一行有四个整数x1,y1,x2,y2,分别为起始位置和目标位置。
当输入n,m 均为0时,表示输入结束。
输出
对于每组数据,输出从起始位置到目标位置的最小花费。每一组数据独占一行。
样例
输入:
2 2 @# #@ 1 1 2 2 2 2 @@ @# 1 2 2 1 0 0
输出:
2 0
说明
对于20%的数据满足:1≤n,m≤10。
对于40%的数据满足:1≤n,m≤300。
对于100%的数据满足:1≤n,m≤500。
对于40%的数据满足:1≤n,m≤300。
对于100%的数据满足:1≤n,m≤500。