SP13118 PUCMM335 - The Rook and The Rookette
题目描述
从前,有一辆名叫丹尼的高贵的车,它在一个普通的 8x8 国际象棋棋盘上生活。棋盘上的所有格子都和睦相处,而丹尼是一辆快乐的车,能够上下左右地在棋盘上自由移动,但从不越界。哦,他真是太享受这种移动了!他每天都忙于拜访所有的 64 个格子,并带去鲜花和礼物。所有的格子都很喜欢丹尼,尽管他们为他感到遗憾,因为他没有一个可以相伴的车后。
国王注意到了这些议论,于是做了一件了不起的事情。他为丹尼安排了一次与来自另一个棋盘的车后玛丽亚的约会。当玛丽亚走到一个格子上时,丹尼便迫不及待地跟了过去。然而,国王故意不让事情那么容易。他对丹尼说道:“丹尼,我们都非常爱你。我现在所做的这一切都是出于对你的爱。”丹尼感到困惑,问道:“尊敬的国王,您是什么意思?”突然,国王在棋盘上放置了 M 枚炸弹,“生活中,梦想需要通过努力去实现。我不能直接把玛丽亚交给你。你需要通过努力来赢得与她约会的权利。” “呃……”丹尼半信半疑地答道。“我也许会站在某个格子上。去追她吧!”
于是丹尼出发了。假设丹尼非常渴望见到玛丽亚,他会选择最短路径去找她。而国王希望能够延长丹尼的路径(或许是为了让他思考如何成长为一个真正的男子汉)。国王需要决定站在哪个空格子上,他有 N 个空格子可供选择。
请编写一个程序,输出如果丹尼和国王都采取最佳策略时,丹尼到达玛丽亚的路径长度。题目保证总会有一条可行的路径。
输入格式
输入文件包含一个测试用例。前 8 行每行有 8 个字符,表示棋盘的初始状态,每行和每列分别从 0 到 7 编号。位置 (i, j) 的字符可以是以下之一:
- `.` :空格子
- `#` :炸弹
- `?` :公主
- `$` :丹尼
随后的一行包含一个整数 $N$($0 \le N \le 10$),表示国王可以选择的位置数。接下来的 $N$ 行,每行包含两个整数 $X_i, Y_i$($0 \le X_i, Y_i \le 7$),表示一个空格子的位置。
输出格式
输出一个整数,表示丹尼到达玛丽亚的最短路径长度,如果丹尼和国王都采取最佳策略。
## 提示
- $0 \le N \le 10$
- $0 \le X_i, Y_i \le 7$
## 示例
### 输入
```
$......?
########
########
########
########
########
########
#######.
1
7 7
```
### 输出
```
7
```
**本翻译由 AI 自动生成**