←轻戳一下
思路
这题跟阻挡广告牌 I 有点差别
不过没关系啦,难度也不见得比 I 要高多少
这题有个最简单的方法(至少我认为)
就是分类讨论!!!!
为了方便大家理解,我还是放了张图hh
C++ 代码
#include<bits/stdc++.h>
#pragma GCC optimize(2)
using namespace std;
int x[2121],y[2121];
int main(){
for(int i=1;i<=4;i++)cin>>x[i]>>y[i];
if(x[4]>=x[2]&&x[3]<=x[1]&&y[4]>=y[2]&&y[3]<=y[1]) cout<<0; //大致分六种情况
else if(x[3]<=x[1]&&y[3]<=y[1]&&y[4]>y[1]&&x[4]>=x[2]) cout<<(x[2]-x[1])*(y[2]-y[4]);
else if(y[3]<y[2]&&x[3]<=x[1]&&y[4]>=y[2]&&x[4]>=x[2]) cout<<(x[2]-x[1])*(y[3]-y[1]);
else if(x[4]>x[1]&&x[3]<=x[1]&&y[4]>=y[2]&&y[3]<=y[1]) cout<<(x[2]-x[4])*(y[2]-y[1]);
else if(x[3]<x[2]&&x[4]>=x[2]&&y[4]>=y[2]&&y[3]<=x[1]) cout<<(x[3]-x[1])*(y[2]-y[1]);
else cout<<(x[2]-x[1])*(y[2]-y[1]);
return 0;
}