#ATagc021c. [AGC021C] Tiling
[AGC021C] Tiling
题目描述
高桥君有一个纵向 行、横向 列的网格。请判断能否在满足以下所有条件的情况下,将 块纵向 行横向 列的瓷砖和 块纵向 行横向 列的瓷砖放在网格上,并在可能时给出一种摆放方式。
- 必须将所有瓷砖都放在网格上。
- 瓷砖不能超出网格范围,且不同的瓷砖之间不能重叠。
- 不允许旋转网格或瓷砖。
- 所有瓷砖都必须完全覆盖正好 个格子。
输入格式
输入从标准输入按以下格式给出。
输出格式
如果无法放置所有瓷砖,输出 NO。否则,按如下格式输出:
YES
其中, 表示网格第 行第 列的状态,必须是下列字符之一:.、<、>、^、v。
当 为:
.时,表示网格第 行第 列未被瓷砖覆盖;<时,表示该格被纵向 行横向 列瓷砖的左半部分覆盖;>时,表示该格被纵向 行横向 列瓷砖的右半部分覆盖;^时,表示该格被纵向 行横向 瓷砖的上半部分覆盖;v时,表示该格被纵向 行横向 瓷砖的下半部分覆盖。
样例 1
输入
3 4 4 2
输出
YES
<><>
^<>^
v<>v
样例 2
输入
4 5 5 3
输出
YES
<>..^
^.<>v
v<>.^
<><>v
样例 3
输入
7 9 20 20
输出
NO
说明/提示
限制条件
- 均为整数
样例说明 1
在一个 行 列的网格上,放置 块纵向 行横向 列的瓷砖和 块纵向 行横向 列的瓷砖的一种方式如下所示,具体可见输出样例。
由 ChatGPT 4.1 翻译