1749. 阻挡广告牌 II

摘要
Title: 1749. 阻挡广告牌 II
Tag: 模拟
Memory Limit: 64 MB
Time Limit: 1000 ms

Powered by:NEFU AB-IN

Link

1749. 阻挡广告牌 II

  • 题意

    见原题

  • 思路

    只能用一块矩形盖住矩形被遮住的剩余部分,那么如果x, y其中一个未被全部遮住,那么面积只能还是割草机广告牌的面积
    其他情况分类讨论即可

  • 代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    '''
    Author: NEFU AB-IN
    Date: 2022-03-30 21:45:16
    FilePath: \ACM\Acwing\1749.py
    LastEditTime: 2022-03-30 21:53:25
    '''


    def S(x1, y1, x2, y2):
    return (x2 - x1) * (y2 - y1)


    x1, y1, x2, y2 = map(int, input().split())
    X1, Y1, X2, Y2 = map(int, input().split())

    if X1 <= x1 and x2 <= X2 and Y1 <= y1 and y2 <= Y2: #全覆盖
    print(0)
    elif X1 <= x1 and x2 <= X2 and Y1 <= y1 and y1 <= Y2 <= y2: #x全覆盖,y上面未覆盖完全
    print(S(x1, y1, x2, y2) - S(x1, y1, x2, Y2))
    elif X1 <= x1 and x2 <= X2 and Y2 >= y2 and y1 <= Y1 <= y2: #x全覆盖,y下面未覆盖完全
    print(S(x1, y1, x2, y2) - S(x1, Y1, x2, y2))
    elif Y1 <= y1 and y2 <= Y2 and X1 <= x1 and x1 <= X2 <= x2: #y全覆盖,x右面未覆盖完全
    print(S(x1, y1, x2, y2) - S(x1, y1, X2, y2))
    elif Y1 <= y1 and y2 <= Y2 and X2 >= x2 and x1 <= X1 <= x2: #y全覆盖,x左面未覆盖完全
    print(S(x1, y1, x2, y2) - S(X1, y1, x2, y2))
    else:
    print(S(x1, y1, x2, y2))
使用搜索:谷歌必应百度