AT_agc021_c [AGC021C] Tiling

题目描述

高桥君有一个纵向 $N$ 行、横向 $M$ 列的网格。请判断能否在满足以下所有条件的情况下,将 $A$ 块纵向 $1$ 行横向 $2$ 列的瓷砖和 $B$ 块纵向 $2$ 行横向 $1$ 列的瓷砖放在网格上,并在可能时给出一种摆放方式。 - 必须将所有瓷砖都放在网格上。 - 瓷砖不能超出网格范围,且不同的瓷砖之间不能重叠。 - 不允许旋转网格或瓷砖。 - 所有瓷砖都必须完全覆盖正好 $2$ 个格子。

输入格式

输入从标准输入按以下格式给出。 > $N$ $M$ $A$ $B$

输出格式

如果无法放置所有瓷砖,输出 `NO`。否则,按如下格式输出: > YES > $c_{11}...c_{1M}$ > $:$ > $c_{N1}...c_{NM}$ 其中,$c_{ij}$ 表示网格第 $i$ 行第 $j$ 列的状态,必须是下列字符之一:`.`、``、`^`、`v`。 当 $c_{ij}$ 为: - `.` 时,表示网格第 $i$ 行第 $j$ 列未被瓷砖覆盖; - `` 时,表示该格被纵向 $1$ 行横向 $2$ 列瓷砖的右半部分覆盖; - `^` 时,表示该格被纵向 $2$ 行横向 $1$ 瓷砖的上半部分覆盖; - `v` 时,表示该格被纵向 $2$ 行横向 $1$ 瓷砖的下半部分覆盖。

说明/提示

### 限制条件 - $1 \leq N, M \leq 1000$ - $0 \leq A, B \leq 500000$ - $N, M, A, B$ 均为整数 ### 样例说明 1 在一个 $3$ 行 $4$ 列的网格上,放置 $4$ 块纵向 $1$ 行横向 $2$ 列的瓷砖和 $2$ 块纵向 $2$ 行横向 $1$ 列的瓷砖的一种方式如下所示,具体可见输出样例。 由 ChatGPT 4.1 翻译