在一个二维空间内,两个长方形之间的交集。
    image.png

    1. int get(int a,int b,int c,int d)
    2. {
    3. return max(0,min(b,d)-max(a,c));
    4. }

    应用题目:1761. 阻挡广告牌
    image.png

    1. #include<iostream>
    2. #include<cstring>
    3. #include<algorithm>
    4. using namespace std;
    5. int a[3][4];
    6. int get(int a,int b,int c,int d)
    7. {
    8. return max(0,min(b,d)-max(a,c));
    9. }
    10. int sum(int a[])
    11. {
    12. return (a[2]-a[0])*(a[3]-a[1]);
    13. }
    14. int main()
    15. {
    16. for(int i=0;i<3;i++)
    17. for(int j=0;j<4;j++) cin>>a[i][j];
    18. int res=0;
    19. for(int i=0;i<2;i++)
    20. res+=get(a[i][0],a[i][2],a[2][0],a[2][2])*
    21. get(a[i][1],a[i][3],a[2][1],a[2][3]);
    22. cout<<sum(a[1])+sum(a[0])-res;
    23. return 0;
    24. }