[BOJ]白駿2669号の4つの矩形の和集の面積を求めます(Python)



BOJ:Q 2669-四つの長方形とセットの面積を求める[青銅1]


質問する


平面には4つの長方形があり、その底辺は横軸に平行です.この4つの矩形は互いに分離してもよいし、重なり合ってもよいし、1つは別のものを含んでもよいし、変異してもよいし、頂点が重なり合ってもよい.
これらの矩形の面積を求めるプログラムを作成してください.

入力


四角形の位置を表す4行の整数を4つずつ入力します.1番目と2番目の整数は矩形左下頂点のx座標、y座標であり、3番目と4番目の整数は矩形右上頂点のx座標、y座標である.すべてのx座標およびy座標は、1以上100未満の整数である.

しゅつりょく


1行目は4つの長方形が占める面積を出力します.


入力

1 2 4 4
2 3 5 7
3 1 6 5
7 3 8 6

しゅつりょく

26

に答える

squares = [list(map(int, input().split())) for _ in range(4)]   # 좌하단 x, y, 우상단 x, y
matrix = [[0 for _ in range(100)] for _ in range(100)]

for i in range(4):
    x1, y1, x2, y2 = squares[i]
    for row in range(y1, y2):
        for col in range(x1, x2):
            matrix[row][col] = 1

answer = sum([sum(matrix[row]) for row in range(100)])

print(answer)
実装をシンプル化するためのセカンダリ・リストの作成