#P123. Bishop Attack!!(Mid Version)

Bishop Attack!!(Mid Version)

题目描述

此题在Easy Version中多个1个碍事的白士兵

在国际象棋中,主教只能在棋盘中斜着走,移动的格数不限,但是不能越过其他棋子; 现在在一个空的棋盘中放置着一个白主教和一个黑国王,还有 11 个白士兵,假设国王不能移动,士兵也不能移动,主教最少需要移动几步可以吃掉国王,主教的移动路线必须要绕过这些白士兵,输出最少移动的步数,如果不能,输出 1-1

Tips:Tips: 在国际象棋中,棋子的位置一般用一个 aha - h 的小写字母表示所在列数(从左到右),和一个 181 - 8 的数字表示所在行数(从下到上),

输入格式

两行,每行都有一个小写字母和一个数字,第一行是主教的在棋盘中的位置,第二行是国王在棋盘中的位置;
随后输入 11 行,表示有 11 个士兵在棋盘上;(该士兵只会出现在主教周围)
每行都有一个小写字母和一个数字,表示士兵的位置。读入的时候须注意每行后面的换行。

HITS:HITS: 我们可以注意到一行只可能有两个字符,可以用一个 char 类型的数组和 %s 读入,这样可以忽视掉末尾的换行,代码如下:

char str[2];//定义一个长度为2的char数组  
scanf("%s",str);//读入一行中的两个字符,第一个字符是str[0],第二个字符是str[1]

读入方法不唯一,请自行选择。

输出格式

一个数字,主教最少需要移动几步可以吃掉国王,如果不能,输出 1-1

样例1

样例1

e4
g6
f5
3