一、题目
问题描述
平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。
输入格式
输入仅包含两行,每行描述一个矩形。
在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。
输出格式
输出仅包含一个实数,为交的面积,保留到小数后两位。
样例输入
1 1 3 3
2 2 4 4
样例输出
1.00
二、思路
求x×y即可,两个大矩形右边边距y轴的最小值减去左边距y轴的最大值就算出x的大小,同理算出y的大小,两个大矩形的上面距x轴的较小的那个减去下面两个距x轴较大的那个。这些都是它们有交的部分,它们可能不相交,所以要判断以下,第一个矩形的距y轴的最大值小于第二个的最小值或者距x轴的最大值小于第二个最小值,说明它们不相交,直接输出0
三、Python代码
x1,y1,x2,y2=map(float,input().split())
x3,y3,x4,y4=map(float,input().split())
a = min(x2,x4)
b = max(x1,x3)
c = min(y2,y4)
d = max(y1,y3)
if a-b>0 and c-d>0:
res = (a-b)*(c-d)
print("%.2f"%res)
else:
print(0.00)