import sys
input = sys.stdin.readline
n = int(input())
graph = [list(map(int, input().split())) for _ in range(n)]
first = 0
second = 0
third = 0
def solution(x, y, n):
num = graph[x][y]
for i in range(x, x+n):
for j in range(y, y+n):
if graph[i][j] != num:
for l in range(3):
for k in range(3):
solution(x+n//3*l, y+n//3*k, n//3)
return
global first, second, third
if num == -1:
first += 1
elif num == 0:
second += 1
else:
third += 1
solution(0,0,n)
print(first, second, third, sep='\n')
분할정복
과 재귀
를 활용하는 문제로, 이전에 풀었던 색종이 만들기(https://www.acmicpc.net/problem/2630) 문제와 같은 유형의 문제이다.