AT_abc232_h [ABC232H] King's Tour

题目描述

有一个纵横为 $H \times W$ 的国际象棋棋盘和 $1$ 个国王棋子。 棋盘上的格子中,从上往下第 $i$ 行($1 \leq i \leq H$)、从左往右第 $j$ 列($1 \leq j \leq W$)的格子记作 $(i, j)$。 国王可以从当前位置移动到周围 $1$ 格内的任意格子。更严格地说,只有当棋盘上的两个格子 $(i, j)$ 和 $(k, l)$ 满足 $\max(|i-k|, |j-l|) = 1$ 时,才能将国王从 $(i, j)$ 移动到 $(k, l)$。 我们将满足以下条件的国王移动过程称为一次“巡游”: - 开始时,将国王放在 $(1, 1)$。之后,国王恰好每个格子都访问一次。 例如,当 $H = 2, W = 3$ 时,按照 $(1,1) \to (1,2) \to (1,3) \to (2,3) \to (2,2) \to (2,1)$ 的顺序移动国王,就满足条件。 现在给定棋盘上 $(1,1)$ 以外的一个格子 $(a, b)$。请构造并输出一种巡游方案,使得国王最后停在 $(a, b)$。在本题的约束下,解一定存在。

输入格式

输入从标准输入按以下格式给出。 > $H$ $W$ $a$ $b$

输出格式

请输出 $HW$ 行。第 $i$ 行输出国王第 $i$ 次停留的格子 $(h_i, w_i)$,格式如下: > $h_i$ $w_i$ 其中,第 $1$ 行必须输出 $(1, 1)$,第 $HW$ 行必须输出 $(a, b)$。

说明/提示

### 约束 - $2 \leq H \leq 100$ - $2 \leq W \leq 100$ - $1 \leq a \leq H$ - $1 \leq b \leq W$ - $(a, b) \neq (1, 1)$ - 所有输入均为整数。 ### 样例解释 1 国王可以按 $(1,1) \to (1,2) \to (2,1) \to (2,2) \to (3,1) \to (3,2)$ 的顺序移动,这样确实以 $(3,2)$ 作为终点的巡游。满足条件的巡游方案还有其他几种,例如以下三种移动方式: - $(1,1) \to (1,2) \to (2,2) \to (2,1) \to (3,1) \to (3,2)$ - $(1,1) \to (2,1) \to (1,2) \to (2,2) \to (3,1) \to (3,2)$ - $(1,1) \to (2,2) \to (1,2) \to (2,1) \to (3,1) \to (3,2)$ 由 ChatGPT 4.1 翻译