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 翻译