Tuesday, September 15, 2015

UVa 10703 - Free spots

// UVa 10703 - Free spots

#include <iostream>
#include <string.h>
using namespace std;

int main() {
	int w, h, n;
	cin >> w >> h >> n;
	while (w || h || n) {
		bool mat[501][501];
		memset(mat, true, sizeof(mat));
		for (int i = 0; i < n; i++) {
			int x1, x2, y1, y2;
			cin >> x1 >> y1 >> x2 >> y2;
			if (x1 > x2) {
				int c = x1;
				x1 = x2;
				x2 = c;
			}
			if (y1 > y2) {
				int c = y1;
				y1 = y2;
				y2 = c;
			}
			for (int x = x1; x <= x2; x++)
				for (int y = y1; y <= y2; y++)
					mat[x][y] = false;
		}
		unsigned long long sol = 0;
		for (int x = 1; x <= w; x++)
			for (int y = 1; y <= h; y++)
				if (mat[x][y])
					sol++;
		switch (sol) {
		case 0:
			cout << "There is no empty spots." << endl;
			break;
		case 1:
			cout << "There is one empty spot." << endl;
			break;
		default:
			cout << "There are " << sol << " empty spots." << endl;
		}
		cin >> w >> h >> n;
	}
	return 0;
}

No comments:

Post a Comment