时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld
题目描述
俄罗斯方块是一个十分古老的游戏,xhy 在小时候十分爱玩,以至于他十分擅长俄罗斯方块。有一天,xhy 觉得俄罗斯方块对他来说太过于简单了,他发明出来这样一个游戏。
游戏中初始有一个

大小的矩阵,每个小方格大小为

,矩阵的第

行,第

列的格子被编号为
)
,矩阵的左上角为
)
,右下角为
)
,同时玩家拥有宽为

,长在
![[1, n]](https://www.nowcoder.com/equation?tex=%5B1%2C%20n%5D)
范围内的矩形,每个长度的矩形各有两个。(例如当

时,玩家拥有

个

大小的矩形,

个

大小的矩形,

个

大小的矩形,

个

大小的矩形)
玩家的胜利条件是将这些矩形铺在

大小的矩阵中,使得每个大小为

小方格都至少被一个矩形覆盖,矩形
可以重叠放置。
但是 xhy 觉得这个游戏太简单了,于是游戏开始后,xhy 拿了一块

大小的矩形,放在了
)
处,这时他突然想起他的金工实习车工作业没有完成,他立刻拿走了一块

大小的矩形作为他的金工实习作业并且离开了,现在只剩下了你一个人,请问你能否通过剩下的矩形和他已经放置好的

大小的矩形,将这个

大小的矩阵完全覆盖,如果能够做到的话,请输出任意一种方案。(完全覆盖的定义为每个大小为

小方格都
至少被一个矩形覆盖,
矩形可以重叠放置。
形式化地说,游戏中初始有一个

大小的矩阵,每个小方格大小为

,矩阵的第

行,第

列的格子被编号为
)
,矩阵的左上角为
)
,右下角为
)
,初始在
)
处被放置了一块

大小的矩形,你有另外的

块大小

的矩形,

块大小

的矩形,以及大小为

(

) 的矩形各

块。你需要将每个小矩形水平或垂直地放入矩阵中,使得矩阵中每个格子都
至少被一个矩形覆盖,请输出任意一种方案。
输入描述:
输入第
行包含
个正整数
,代表矩阵的大小, xhy 放置的
大小的矩形所在的位子。
)
输出描述:
输出第
行包含一个字符串,若有解输出 “Yes”, 否则输出 “No”。(不含引号)
若有解,接下来
行,每行用空格隔开输出
个整数
,代表一个长为
的矩形,矩形左上角被放置在
处。当矩形是横向放置时,
, 否则
。
例如,若将一个长度为
的矩形覆盖在
上时,输出的这一行为 “3 2 3 1”。(不含引号)
若将一个长度为
的矩形覆盖在
上时,输出的这一行为 “4 4 3 0”。(不含引号)
示例2
输出
复制
Yes
5 1 1 0
3 1 2 0
1 5 2 0
3 1 3 0
2 4 3 0
4 1 4 0
4 1 5 0
2 5 4 1
说明
样例

解释:
图中每个颜色单独的联通块为一个矩形。