SP4052 MGAME1 - Game
题目描述
Hal 和 Dave 正在下一个有趣的棋盘游戏。这个棋盘是一个由 $R$ 行 $C$ 列组成的矩形。游戏规则如下:
- 棋盘上只有一枚棋子,两名玩家轮流操作这枚棋子。
- 棋子每次可以向下、向右或沿右下对角线移动到相邻的格子。
- 某些格子是“禁止”区域,棋子不能移动到这些格子上。
- 每个格子上最多可以有一种食物:汉堡(H)、薯条(F)或冰淇淋(I)。移动到含汉堡的格子得1分,含薯条的得3分,含冰淇淋的得5分。
- 当玩家无法进行合法移动时(即所有可能的移动方向都导致棋子出界或进入禁止格子),游戏结束。
- 如果游戏结束时两位玩家得分相同,则不能移动的那位玩家输掉比赛。
- 如果游戏结束时两位玩家得分不同,则得分高者获胜。
- 游戏开始时,两位玩家的得分均为0,Hal 先走。初始位置是一个既不禁止也不含食物的格子。
因为每局游戏的可能移动序列是有限的,可以证明,对于任何给定的初始位置,要么 Dave 要么 Hal 有必胜策略。给定棋盘及其禁止格子的位置、食物格子的位置以及一些初始位置,请为每个给定的初始位置确定哪位玩家有必胜策略。
输入格式
第一行包含两个整数 $R$ 和 $C$,分别表示棋盘的行数和列数($2 \le R \le 100$,$2 \le C \le 100$)。
接下来的 $R$ 行中,每行含有一个长度为 $C$ 的字符串,表示对应行的棋盘状态。禁止格子用 `#` 表示,含食物的格子用 H(汉堡)、F(薯条)和 I(冰淇淋)表示,其余格子用 `.` 表示。
接下来一行是整数 $N$,表示需要确认哪位玩家有必胜策略的初始位置的数量($1 \le N \le 100$)。
接下来的 $N$ 行中,每行包含两个整数 $A$ 和 $B$,表示一个初始位置的行号和列号($1 \le A \le R$,$1 \le B \le C$)。行从上到下编号为1到$R$,列从左到右编号为1到$C$。
输出格式
输出包含 $N$ 行。对每个初始位置,输出对应有必胜策略的玩家的名字(DAVE 或 HAL)。
**本翻译由 AI 自动生成**