algorithm'''problem solve
[백준] 1992 - 쿼드트리(설명X)
JunHwa Park
2020. 5. 1. 00:07
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include <cstdio> int isFilled(int** arr, int size, int x, int y) { int tmp = arr[x][y]; for (int i = 0; i < size; i++) for (int j = 0; j < size; j++) if (tmp != arr[i + x][j + y]) return -1; return tmp; } void divNconq(int** arr, int size, int x, int y) { int all = isFilled(arr, size, x, y); if (all != -1) { printf("%d", all); return; } printf("("); divNconq(arr, size / 2, x, y); divNconq(arr, size / 2, x, y + size / 2); divNconq(arr, size / 2, x + size / 2, y); divNconq(arr, size / 2, x + size / 2, y + size / 2); printf(")"); } int main() { int N; scanf("%d", &N); int** arr = new int* [N]; for (int i = 0; i < N; i++) { arr[i] = new int[N]; for (int j = 0; j < N; j++) scanf("%1d", &arr[i][j]); } divNconq(arr, N, 0, 0); printf("\n"); } | cs |