#aBC232H. [ABC232H] King's Tour

[ABC232H] King's Tour

AT_abc232_h [ABC232H] King's Tour

题目描述

有一个纵横为 H×WH \times W 的国际象棋棋盘和 11 个国王棋子。
棋盘上的格子中,从上往下第 ii 行(1iH1 \leq i \leq H)、从左往右第 jj 列(1jW1 \leq j \leq W)的格子记作 (i,j)(i, j)
国王可以从当前位置移动到周围 11 格内的任意格子。更严格地说,只有当棋盘上的两个格子 (i,j)(i, j)(k,l)(k, l) 满足 max(ik,jl)=1\max(|i-k|, |j-l|) = 1 时,才能将国王从 (i,j)(i, j) 移动到 (k,l)(k, l)

我们将满足以下条件的国王移动过程称为一次“巡游”:

  • 开始时,将国王放在 (1,1)(1, 1)。之后,国王恰好每个格子都访问一次。

例如,当 H=2,W=3H = 2, W = 3 时,按照 $(1,1) \to (1,2) \to (1,3) \to (2,3) \to (2,2) \to (2,1)$ 的顺序移动国王,就满足条件。

现在给定棋盘上 (1,1)(1,1) 以外的一个格子 (a,b)(a, b)。请构造并输出一种巡游方案,使得国王最后停在 (a,b)(a, b)。在本题的约束下,解一定存在。

输入格式

输入从标准输入按以下格式给出。

HH WW aa bb

输出格式

请输出 HWHW 行。第 ii 行输出国王第 ii 次停留的格子 (hi,wi)(h_i, w_i),格式如下:

hih_i wiw_i

其中,第 11 行必须输出 (1,1)(1, 1),第 HWHW 行必须输出 (a,b)(a, b)

输入输出样例 #1

输入 #1

3 2 3 2

输出 #1

1 1
1 2
2 1
2 2
3 1
3 2

说明/提示

约束

  • 2H1002 \leq H \leq 100
  • 2W1002 \leq W \leq 100
  • 1aH1 \leq a \leq H
  • 1bW1 \leq b \leq W
  • (a,b)(1,1)(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)(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 翻译