#include #include #include

using namespace std;

struct Rectangle { int x1, y1, x2, y2; };

int main() { int N; cin >> N;

vector<Rectangle> rectangles(N);
for (int i = 0; i < N; i++) {
    cin >> rectangles[i].x1 >> rectangles[i].y1 >> rectangles[i].x2 >> rectangles[i].y2;
}

int totalArea = 0;
for (int i = 0; i < N; i++) {
    totalArea += (rectangles[i].x2 - rectangles[i].x1) * (rectangles[i].y2 - rectangles[i].y1);
    for (int j = i + 1; j < N; j++) {
        int overlapWidth = max(0, min(rectangles[i].x2, rectangles[j].x2) - max(rectangles[i].x1, rectangles[j].x1));
        int overlapHeight = max(0, min(rectangles[i].y2, rectangles[j].y2) - max(rectangles[i].y1, rectangles[j].y1));
        totalArea -= overlapWidth * overlapHeight;
    }
}

cout << totalArea << endl;

return 0;
题目描述:桌面上放了N个平行于坐标轴的矩形这N个矩形可能有互相覆盖的部分求它们组成的图形的面积。 输入格式:输入第一行为一个数N1≤N≤100表示矩形的数量。下面N行每行四个整数分别表示每个矩形的左下角和右上角的坐标坐标范围为–10^8到10^8之间的整数。 输出格式:输出只有一行一个整数表示图形的面积。 样例输入:31 1 4 32 -1 3 24 0 5 2样例输出:10C++实现

原文地址: https://www.cveoy.top/t/topic/hTCc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录