天天看點

White Sheet

​​C - White Sheet​​

思路:先看代碼,分成了四個條件。第一個和第二個表示的都是當白矩形存在某個黑矩形内部的情況。

另外就是:白矩形位于兩個黑矩形的并集區域。

即可分為兩種情況,一種是白矩形位于豎的區域(條件三),上圖:

White Sheet

那麼黃色區域就是判斷範圍

另一種是橫的區域(條件四):

White Sheet
黃色區域即判斷範圍。

代碼:

x1,y1,x2,y2=map(int,input().split())
x3,y3,x4,y4=map(int,input().split())
x5,y5,x6,y6=map(int,input().split())

flag=False
if x3<=x1 and y3 <=y1 and x4>=x2 and y4>=y2:
    flag=True
elif x5<=x1 and y5 <=y1 and x6>=x2 and y6>=y2:
    flag=True
elif x1>=max(x3,x5) and x2<=min(x4,x6):
    if min(y4,y6)>=max(y3,y5) and min(y3,y5)<=y1 and max(y4,y6)>=y2:
        flag=True
elif y1>=max(y3,y5) and y2 <=min(y4,y6):
    if min(x4,x6)>=max(x3,x5) and min(x3,x5)<=x1 and max(x4,x6)>=x2:
        flag=True
print("NO" if flag else "YES")