範例程式碼 uva11639

//uva11639
#include <stdio.h>

#define min(x, y) ((x) < (y) ? (x) : (y))
#define max(x, y) ((x) > (y) ? (x) : (y))

typedef struct {
	int x, y;
} Pt;

int main() {
	int t, cases = 0;
	scanf("%d", &t);
	while(t--) {
		Pt a, b, c, d;
		int i, j, k, l;
		scanf("%d %d %d %d", &a.x, &a.y, &b.x, &b.y);
		scanf("%d %d %d %d", &c.x, &c.y, &d.x, &d.y);
		i = max(a.x, c.x), j = max(a.y, c.y);
		k = min(b.x, d.x), l = min(b.y, d.y);
		int A = (b.x - a.x) * (b.y - a.y);
		int B = (d.x - c.x) * (d.y - c.y);
		int C = (i - k) * (j - l);
		printf("Night %d: ", ++cases);
		if(i >= k || j >= l) {
			printf("0 %d %d\n", A + B, 10000 - A - B);
		} else {
			 printf("%d %d %d\n", C, A + B - C - C, 10000 - A - B + C);
		}
	}
	return 0;
}