less than 1 minute read

1992

#include <cstdio>
using namespace std;

void compress(int size, int x, int y);

const int MAX = 64;

int arr[MAX][MAX];
int main() {
	int n, i, j;
	
	scanf("%d", &n);
	
	for (i = 0; i < n; i++) {
		for (j = 0; j < n; j++) {
			scanf("%1d", &arr[i][j]);
		}
	}
	
	compress(n, 0, 0);
	
	return 0;
}

void compress(int size, int x, int y) {
	int one = true;
	int zero = true;
	int i, j;
	
	if (size == 1) {
		printf("%d", arr[x][y]);
	}
	else {
		for (i = x; i < x+size; i++) {
			for (j = y; j < y+size; j++) {
				if (arr[i][j]) {
					zero = false;
				} else {
					one = false;
				}
			}
		}
		
		if (one) {
		printf("1");
		}
		else if (zero) {
			printf("0");
		}
		else {
			printf("(");
			compress(size/2, x, y);
			compress(size/2, x, y+(size/2));
			compress(size/2, x+(size/2), y);
			compress(size/2, x+(size/2), y+(size/2));
			printf(")");
		}
	}
}

Categories:

Updated: