AT_agc021_c [AGC021C] Tiling
Description
[problemUrl]: https://atcoder.jp/contests/agc021/tasks/agc021_c
高橋君は、縦 $ N $ マス横 $ M $ マスのマス目を持っています。 次の条件をすべて満たすように、縦 $ 1 $ マス横 $ 2 $ マスのタイル $ A $ 枚と、縦 $ 2 $ マス横 $ 1 $ マスのタイル $ B $ 枚を マス目に置くことができるかどうかを判定し、可能なら置き方をひとつ構成してください。
- マス目の上に、全てのタイルを置かなければならない。
- タイルはマス目からはみ出してはならず、また異なるタイル同士が重なってはならない。
- マス目やタイルを回転させてはならない。
- 全てのタイルは、マス目のちょうど $ 2 $ マスを完全に覆う。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ A $ $ B $
Output Format
タイルを全て置くことができない場合、`NO` を出力せよ。 そうでない場合、以下のように出力せよ。
> YES $ c_{11}...c_{1M} $ $ : $ $ c_{N1}...c_{NM} $
ただし、$ c_{ij} $ はマス目の $ i $ 行 $ j $ 列目の状態を表し、文字 `.`,``,`^`,`v` のいずれかでなければならない。
$ c_{ij} $ が、
- `.` のとき、マス目の $ i $ 行 $ j $ 列目はタイルで覆われていないことを、
- `` のとき、マス目の $ i $ 行 $ j $ 列目は縦 $ 1 $ マス、横 $ 2 $ マスのタイルの右半分で覆われていることを、
- `^` のとき、マス目の $ i $ 行 $ j $ 列目は縦 $ 2 $ マス、横 $ 1 $ マスのタイルの上半分で覆われていることを、
- `v` のとき、マス目の $ i $ 行 $ j $ 列目は縦 $ 2 $ マス、横 $ 1 $ マスのタイルの下半分で覆われていることを、
それぞれ表す。
Explanation/Hint
### 制約
- $ 1\ \leq\ N,M\ \leq\ 1000 $
- $ 0\ \leq\ A,B\ \leq\ 500000 $
- $ N,M,A,B $ は整数である
### Sample Explanation 1
縦 $ 3 $ マス横 $ 4 $ マスのマス目に、縦 $ 1 $ マス横 $ 2 $ マスのタイル $ 4 $ 枚と、縦 $ 2 $ マス横 $ 1 $ マスのタイル $ 2 $ 枚を置く方法の一例として、 出力例のようなものがあります。