atcoder#ABC232H. [ABC232H] King's Tour

[ABC232H] King's Tour

配点 : 600600

問題文

縦横 H×WH \times W のチェス盤と 11 個のキングの駒があります。 チェス盤のマスのうち、上から ii 行目 (1iH)(1 \leq i \leq H) で左から jj 行目 (1jW)(1 \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) に動かすことができます。

次の条件を満たすようにキングを縦横 H×WH \times W のチェス盤上で動かすことを「ツアー」と定めます。

  • はじめ、(1,1)(1, 1) にキングを置く。そのあと、キングが全てのマスにちょうど 11 回ずつ置かれるようにキングを動かす。

たとえば、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) となるものを 11 つ構成して出力してください。この問題の制約下において解は必ず存在することが証明できます。

制約

  • 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)
  • 入力はすべて整数である。

入力

入力は以下の形式で標準入力から与えられる。

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) を出力する必要がある点に注意せよ。

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

キングは $(1, 1) \to (1, 2) \to (2, 1) \to (2, 2)\to (3, 1) \to (3, 2)$ と移動して、これは確かに (3,2)(3,2) を終点とするツアーとなっています。 条件を満たすツアーは他にもいくつかあり、たとえば以下の 33 つの移動が挙げられます。

  • $(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)$