【问题描述】
平面上有两个矩形A和B,其位置是任意的。编程求出其相交部分(如图中阴影部分)的面积。(0≤a,b≤1000)
【输入文件】从标准输入读取两行以空格分隔的整数,格式如下:
Ax1 Ay1 Ax2 Ay2
Bx1 By1 Bx2 By2
其中(x1,y1)为矩形左上顶点座标,(x2,y2)为右下顶点座标。各座标值均为整数,取值在0至1000之间。
【输出文件】
向标准输出打印一个整数,是两矩形相交部分的面积(可能为0)。在输出末尾要有一个回车符。
【输入样例】
0 0 2 2
1 1 3 4
【输出样例】
1
【样例说明】
输入的两个矩阵的相交面积为1
list_inp = []
for i in range(2): # 读取
list_inp.append(input().split())
x = 999 # max x
y = 999 # max y
# 定义一个矩阵 包含 A, B 两个矩阵,值全为0
list_matrix = [[0 for cow in range(x)] for row in range(y)]
for iy in range(y): # A矩阵为1
for jx in range(x):
if ((jx >= int(list_inp[0][0]))
and (iy >= int(list_inp[0][3]))
and (jx <= int(list_inp[0][2]))
and (iy <= int(list_inp[0][1]))):
list_matrix[iy][jx] = 1
list_y = [] # i
list_x = [] # j
for i in range(y): # 查找重复矩阵
for j in range(x):
if ((j >= int(list_inp[1][0]))
and (i >= int(list_inp[1][3]))
and (j <= int(list_inp[1][2]))
and (i <= int(list_inp[1][1]))):
if list_matrix[i][j] == 1: # 重复区域
list_x.append(j) # x
list_y.append(i) # y
if len(list_x) == 0:
print('0')
else:
a = abs(list_x[0] - list_x[len(list_x) - 1]) # 长
b = abs(list_y[0] - list_y[len(list_y) - 1]) # 宽
print(a * b)