SP8424 BTCODE_F - Life Game
题目描述
Gobo 和 Muku 对工作感到厌倦,因此决定在各自的笔记本电脑上玩一款名为「生命游戏」的单人游戏。这款游戏的舞台是一个 $M \times N$ 的矩形网格。网格的每个格子内都有一瓶魔法药水,坐落在第 $i$ 行、第 $j$ 列的格子的药水会增加玩家 $V_{ij}$ 的生命值(如果 $V_{ij}$ 是负数,则生命值会减少)。玩家的生命值可以为负,不会因此“死亡”。玩家可以从一个格子 $(i, j)$ 移动到下列三个格子中的一个:$(i+1, j-1)$、$(i+1, j)$ 或 $(i+1, j+1)$。只要目标格子在网格范围内,移动都是合法的。游戏一开始,玩家的生命值为 0,并可以从第一行的任意列 $(1, j)$ 开始。进入某个格子后,玩家必须喝掉该格子的药水。当玩家到达最后一行的任意一列时,游戏结束。游戏有两种模式:「最大值」模式和「最小值」模式。在「最大值」模式下,目标是以尽量大的生命值完成游戏,同时满足 $A \leq H_{\text{max}} \leq B$ 的条件。而「最小值」模式的目标则是以尽量小的生命值完成游戏,同时也要满足 $A \leq H_{\text{min}} \leq B$。现在,Gobo 决定用「最大值」模式玩这款游戏,而 Muku 则选择「最小值」模式。你能帮助 Gobo 和 Muku 达到各自的游戏目标吗?
输入格式
第一行输入一个整数 $t$,表示测试用例的数量。
每个测试用例的第一行包含两个用空格分隔的整数 $M$ 和 $N$。第二行包含两个用空格分隔的整数 $A$ 和 $B$。接下来的 $M$ 行中,每行有 $N$ 个整数。第 $i$ 行的第 $j$ 个整数表示 $V_{ij}$。
输出格式
输出两个用空格分开的整数 $H_{\text{min}}$ 和 $H_{\text{max}}$,分别表示 Muku 和 Gobo 可以达成的最小和最大生命值。这两者都需满足条件 $A \leq H_{\text{max}}$ 和 $H_{\text{min}} \leq B$。如果无法满足这样的生命值,请输出 `NO`。
Gobo 和 Muku 在两个独立但相同的游戏实例上进行游戏,即 A、B 和 $V_{ij}$ 的初始值对两个网格都是相同的。
**本翻译由 AI 自动生成**