连连看(wiring)
题目描述
在一个n*m的棋盘中,有两个a和两个b。你现在要画两条连线,先将两个a连在一起,再将两个b连在一起。连线总是从一个格子的中心开始,连向上下左右相邻的格子中心。连线不允许相交。问将它们相连的最短连线长度是多少?
上图所示的棋盘,最短连线为长度8。
输入格式
第一行包含两个整数n和m。
接下来n行m列的字符描述一个棋盘。点“.”表示空格,非空格的格子就被小写字母a或b占据。a和b各出现两次。
输出格式
输出一个数,表示最短连线距离。若没有合法的连线方法,输出-1。
测试样例
wiring.in |
wiring.out |
4 4 ..b. ..a. ab.. .... |
8 |
2 4 a..b .b.a |
-1 |
数据范围
对于100%的数据,2≤n,m≤8。