【问题描述】
平面上有两个矩形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
y = 999
list_matrix = [[0 for cow in range(x)] for row in range(y)]
for iy in range(y):
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 = []
list_x = []
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)
list_y.append(i)
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)
|