在一个二维空间内,两个长方形之间的交集。
int get(int a,int b,int c,int d){return max(0,min(b,d)-max(a,c));}
应用题目:1761. 阻挡广告牌
#include<iostream>#include<cstring>#include<algorithm>using namespace std;int a[3][4];int get(int a,int b,int c,int d){return max(0,min(b,d)-max(a,c));}int sum(int a[]){return (a[2]-a[0])*(a[3]-a[1]);}int main(){for(int i=0;i<3;i++)for(int j=0;j<4;j++) cin>>a[i][j];int res=0;for(int i=0;i<2;i++)res+=get(a[i][0],a[i][2],a[2][0],a[2][2])*get(a[i][1],a[i][3],a[2][1],a[2][3]);cout<<sum(a[1])+sum(a[0])-res;return 0;}
