atcoder#AGC021C. [AGC021C] Tiling

[AGC021C] Tiling

配点 : 900900

問題文

高橋君は、縦 NN マス横 MM マスのマス目を持っています。 次の条件をすべて満たすように、縦 11 マス横 22 マスのタイル AA 枚と、縦 22 マス横 11 マスのタイル BB 枚を マス目に置くことができるかどうかを判定し、可能なら置き方をひとつ構成してください。

  • マス目の上に、全てのタイルを置かなければならない。
  • タイルはマス目からはみ出してはならず、また異なるタイル同士が重なってはならない。
  • マス目やタイルを回転させてはならない。
  • 全てのタイルは、マス目のちょうど 22 マスを完全に覆う。

制約

  • 1N,M10001 \leq N,M \leq 1000
  • 0A,B5000000 \leq A,B \leq 500000
  • N,M,A,BN,M,A,B は整数である

入力

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

NN MM AA BB

出力

タイルを全て置くことができない場合、NO を出力せよ。 そうでない場合、以下のように出力せよ。

YES

c11...c1Mc_{11}...c_{1M}

::

cN1...cNMc_{N1}...c_{NM}

ただし、cijc_{ij} はマス目の iijj 列目の状態を表し、文字 .,<.>,^,v のいずれかでなければならない。

cijc_{ij} が、

  • . のとき、マス目の iijj 列目はタイルで覆われていないことを、
  • < のとき、マス目の iijj 列目は縦 11 マス、横 22 マスのタイルの左半分で覆われていることを、
  • > のとき、マス目の iijj 列目は縦 11 マス、横 22 マスのタイルの右半分で覆われていることを、
  • ^ のとき、マス目の iijj 列目は縦 22 マス、横 11 マスのタイルの上半分で覆われていることを、
  • v のとき、マス目の iijj 列目は縦 22 マス、横 11 マスのタイルの下半分で覆われていることを、

それぞれ表す。

3 4 4 2
YES
<><>
^<>^
v<>v

33 マス横 44 マスのマス目に、縦 11 マス横 22 マスのタイル 44 枚と、縦 22 マス横 11 マスのタイル 22 枚を置く方法の一例として、 出力例のようなものがあります。

4 5 5 3
YES
<>..^
^.<>v
v<>.^
<><>v
7 9 20 20
NO