样例解释
如下图所示,被两个点污染的是两个正方形,每个正方形的边长都是2,都由4个边长为1的格子构成,但是因为两个正方形存在重叠部分,所以被污染的格子只有七个。
因此,这道题就是让我们求两个正方形重叠部分的正方形的面积。重叠有两种重叠方式:
重叠正方形的面积求法
重叠正方形的x边求法
右x端点:可以用公式表示为
左x端点:a,c里面较大的那个x。
x边:
重叠正方形的y边求法
重叠正方形的y坐标我们也可以用同样的方式求出:
code
#include<bits/stdc++.h>
using namespace std;
int a,b,v1,c,d,v2;
int main()
{
cin>>a>>b>>v1>>c>>d>>v2;
//求重叠面积 如果没有重叠的话相减肯定为0
//求x
int x=min(a+v1,c+v2)-max(a,c);
//求y
int y=min(b,d)-max(b-v1,d-v2);
int s=x*y; //重叠的面积
//求一下全部面积
int ans=v1*v1+v2*v2;
if(x>0&&y>0) //如果大于0说明存在重叠部分
{
ans-=s;
}
cout<<ans;
return 0;
}