#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cstring>
#include <stack>
#include <queue>
#include <limits.h>
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
int n;
int ans[3];
int tb2[3001][3001];
bool same(int x, int y, int k) {
       for (int i = x; i<x + k; ++i) {
              for (int j = y; j<y + k; ++j) {
                     if (tb2[i][j] != tb2[x][y])
                     {
                           return false;
                     }
              }
       }
       return true;
}
void go(int x, int y, int k) {
       if (same(x, y, k)) {
              ans[tb2[x][y] + 1] += 1;
              return;
       }
       for (int ii = 0; ii<3; ++ii) {
              for (int jj = 0; jj<3; ++jj) {
                     go(x + ii * (k / 3), y + jj * (k / 3), k / 3);
              }
       }
}
int main(void) {
       cin >> n;
       for (int i = 0; i<n; ++i) {
              for (int j = 0; j<n; ++j) {
                     cin >> tb2[i][j];
              }
       }
       go(0, 0, n);
       for (int i = 0; i<3; ++i) {
              cout << ans[i] << endl;
       }
       return 0;
}


'알고리즘' 카테고리의 다른 글

[DC] 백준 6236 용돈관리  (0) 2018.04.29
[DC] 백준 11728 배열 합치기  (1) 2018.04.29
[BS] 백준 2512 예산  (0) 2018.04.29
[BS] 백준 1939 중량제한  (0) 2018.04.29
[BS] 백준 1561 놀이공원  (0) 2018.04.29

+ Recent posts