输入:共三行,每行两个正整数,分别表示每个矩形窗口的两个相临边的边长,其值都小于等于 1000。 输出:字符串 YES! 或 NO! 代表窗口能否按题面描述嵌套的判断结果。写一个代码
时间: 2024-10-09 20:01:28 浏览: 55
python 输入两个正整数计算最大公约数和最小公倍数 示例
5星 · 资源好评率100%
这是一个关于矩形窗口嵌套的问题,你需要编写一个程序来检查给定的一系列小矩形是否可以按照题目的要求完全嵌套在一个大的矩形内。具体步骤如下:
1. 首先,读取三个输入的矩形信息,每个矩形由两对边长组成,例如 (x1, y1) 和 (x2, y2),其中 x1 和 y1 分别是矩形左上角的横纵坐标,x2 和 y2 是右下角的坐标。
2. 对于每个小矩形,计算其实际宽度 (x2 - x1 + 1) 和高度 (y2 - y1 + 1),然后检查这个小矩形的右下角点是否在大矩形内部。如果大矩形的左边缘大于小矩形的右边缘,或者顶部边缘大于小矩形的底部边缘,则说明无法嵌套。
3. 用循环遍历所有的小矩形,并应用上述条件。如果所有小矩形都能嵌套在大矩形内,那么返回 "YES!";反之,如果有一个不符合嵌套条件,则返回 "NO!"。
```python
def can_fit(rectangles):
# 矩形数据存储为列表 of tuples [(x1, y1), (x2, y2)]
large_rectangle = rectangles[0]
for small_rectangle in rectangles[1:]:
if large_rectangle[0] > small_rectangle[1] or large_rectangle[1] > small_rectangle[3]:
return "NO!"
return "YES!"
# 示例输入:
rectangles = [(1, 1), (5, 5)], [(2, 2), (4, 4)], [(3, 3), (6, 6)]
result = can_fit(rectangles)
print(result) # 输出: "YES!"
```
阅读全文