#agc021c. [agc021_c]Tiling
[agc021_c]Tiling
题目描述
Takahashi 有一个 的网格,其中有 行和 列。判断是否可以满足以下条件放置 个 砖块( 纵向, 横向)和 个 砖块( 纵向, 横向),并构造出一种砖块的摆放方式:
- 所有砖块必须放置在网格上。
- 砖块不能超出网格,并且任意两个不同的砖块不能相交。
- 网格和砖块都不能旋转。
- 每个砖块完全覆盖两个方格。
约束条件
- 、、 和 都是整数。
输入
从标准输入读入输入数据,格式如下:
输出
如果无法放置所有砖块,输出 NO
。否则,输出如下内容:
YES :
这里, 必须是以下字符之一:.
、<
、>
、^
和 v
。根据下面的规则使用每个字符来表示砖块的摆放方式:
- 当 为
.
时,表示第 行和第 列的方格为空; - 当 为
<
时,表示第 行和第 列的方格被 砖块的左半部分覆盖; - 当 为
>
时,表示第 行和第 列的方格被 砖块的右半部分覆盖; - 当 为
^
时,表示第 行和第 列的方格被 砖块的上半部分覆盖; - 当 为
v
时,表示第 行和第 列的方格被 砖块的下半部分覆盖。
示例输入 1
3 4 4 2
示例输出 1
YES
<><>
^<>^
v<>v
这是一种在 的网格上放置四个 砖块和三个 砖块的摆放方式。
示例输入 2
4 5 5 3
示例输出 2
YES
<>..^
^.<>v
v<>.^
<><>v
示例输入 3
7 9 20 20
示例输出 3
NO