#1653. 圆桌骑士
圆桌骑士
题目描述
很多世纪以前,阿瑟王和他的圆桌骑士常在每年的元旦庆祝他们的友谊。我们用一个单人玩的棋盘游戏去纪念这个史实:一个国王和多个骑士被随机放在棋盘的不同方格上。棋盘是一个的正方形:
只要不越出棋盘,国王就可移至与之相邻的方格内。如下图所示,国王可以由●跳至○。
在棋局当中,选手可以在同一方格内摆放多个棋子(假设棋盘的方格足够大,任何棋子都不会成为其它棋子自由移动的障碍)。
选手的目标是在尽可能少的步数内把所有的棋子集中到同一方格内。为此他必须按前述方法去移动棋子。此外,当国王和一个或多个骑士处于同一方格内时,选手可以选择此后让国王跟一个骑士一同向聚会终点移动,就像移动单个骑士一样。 写出一个程序去计算选手要实现聚会所需的最少的移动次数。
输入格式
包括了以字符串表示的棋盘初始状态。该字符串包含了一串最多由个不同的棋子位置:首先是国王的位置,而随后是骑士们的位置。每个位置由一对字母数字表示,字母表示水平坐标,而数字表示棋盘垂直坐标。
输出格式
必须包含单一的一行,以一个正整数表示选手要实现聚会所需要最少的移动次数。
样例
输入样例
D4A3A8H1H8
样例解释
国王放在,四个骑士分别放在及。
输出样例
10
提示
骑士数目