WUST Online Judge

2175: 层叠消融

Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lld
Submitted: 118  Accepted: 78
[Submit][Status][Web Board]

Description

n张矩形纸片叠在一起,偶数张叠加的区域会消去,奇数张叠加的区域会保留,求最后保留的区域的总面积。矩形的边平行于坐标轴。

Input

多组输入,每组格式如下:

第一行1个整数n。

接下来n行,每行4个整数x1, y1, x2, y2。( x1, y1)为矩形左下顶点位置,( x2, y2)为矩形右上顶点位置。

数据范围:测试组数不超过10; 1<= n <= 100; -50 <= x1 < x2 <= 50; -50 <= y1 < y2 <= 50;

Output

每组输出一行,一个整数,表示最后保留的区域的总面积。

Sample Input

2
-2 -1 2 1
-1 -2 1 2
3
1 1 6 3
2 1 4 5
3 2 5 4

Sample Output

8
10

Author

刘银虎

代码如下:

#include <stdio.h>

int main() {
	int a[105][105];
	int i, j, k, n, sum, x1[100], y1[100], x2[100], y2[100];
	while (scanf("%d", &n) != EOF) {
		sum = 0;
		memset(a, 0, sizeof(a));
		for (i = 0; i < n; i++) {
			scanf("%d%d%d%d", &x1[i], &y1[i], &x2[i], &y2[i]);
			for (j = x1[i] + 50; j < x2[i] + 50; j++)
                for (k = y1[i] + 50; k < y2[i] + 50; k++)
                    a[j][k]++;
		}
		for (i = 0; i < 105; i++)
			for (j = 0; j < 105; j++)
				if (a[i][j] % 2 != 0)
					sum++;
		printf("%d
", sum);
	}
	return 0;
}
作者:McR
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/mcr-tcp/p/9170752.html