Bishop Attack!!!(Hard Version)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
此题在Easy Version中多了若干个碍事的白士兵
在国际象棋中,主教只能在棋盘中斜着走,移动的格数不限,但是不能越过其他棋子; 现在在一个空的棋盘中放置着一个白主教和一个黑国王,还有 个白士兵,假设国王不能移动,士兵也不能移动,主教最少需要移动几步可以吃掉国王,主教的移动路线必须要绕过这些白士兵,输出最少移动的步数,如果不能,输出 。
在国际象棋中,棋子的位置一般用一个 的小写字母表示所在列数(从左到右),和一个 的数字表示所在行数(从下到上),
输入格式
两行,每行都有一个小写字母和一个数字,第一行是主教的在棋盘中的位置,第二行是国王在棋盘中的位置; 第三行输入一个数 ,表示有 个士兵在棋盘上; 随后输入 行,每行都有一个小写字母和一个数字,表示士兵的位置。读入的时候须注意每行后面的换行。
HITS:我们可以注意到一行只可能有两个字符,可以用一个char类型的数组和%s读入,这样可以忽视掉末尾的换行,代码如下:
char str[2];//定义一个长度为2的char数组
scanf("%s",str);//读入一行中的两个字符,第一个字符是str[0],第二个字符是str[1]
读入方法不唯一,请自行选择。
输出格式
一个数字,主教最少需要移动几步可以吃掉国王,如果不能,输出 。
样例1
c4
f7
1
e6
3
样例2
f1
f5
5
e6
g6
d3
f3
g4
6
黄冈师范学院第1届ACM程序设计竞赛
- 状态
- 已结束
- 规则
- ACM/ICPC
- 题目
- 10
- 开始于
- 2022-10-30 14:00
- 结束于
- 2022-10-30 18:00
- 持续时间
- 4 小时
- 主持人
- 参赛人数
- 0