Transport
题号:NC204248
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 64 M,其他语言128 M
64bit IO Format: %lld

题目描述

某市现有一批COVID-19患者需要从小区运送到医院,但是因为疫情小区没有车辆,需要从指挥部征调车辆来小区将病人送往医院。
现在,我们想知道,将病人运往医院的最短路程是多少?
如果因障碍物等原因不可到达,输出-1。
城市一个n行m列的网格图,行数从上到下为1到n,  列数从左到右为1到m, 只能向上下左右四个方向行走,并且不能走出城市。

输入描述:

第一行一个正整数T,表示测试的组数。
每组数据第一行两个整数n, m,表示城市网格的行数和列数。
之后n行,每行m个字符,'.'表示该位置可以走,‘*’表示该位置不可以走。
之后一行6个正整数分别表示指挥部,小区和医院的坐标,三点相异且不存在障碍物。(x行数,y列数)

输出描述:

输出T行,每行一个整数表示答案。
示例1

输入

复制
1
3 3
...
.**
...
1 3 1 1 3 3

输出

复制
6