종이 분할


문제 정보
check포인트 : 1 (부분 점수)
schedule시간 제한 : 2.0s
storage메모리 제한 : 256M
edit_square출제자:
 
답안 제출

N×N 크기의 행렬로 나타낸 종이가 있다. 이 종이의 각 칸에는 -1, 0, 1 중 하나의 수가 적혀 있다.

이 종이를 몇 개의 조각으로 나누려고 한다. 나누는 과정은 다음 규칙을 따른다.

  • 현재 보고 있는 종이의 모든 칸에 같은 수가 적혀 있다면, 이 종이는 더 이상 자르지 않고 하나의 종이로 사용한다.

  • 그렇지 않다면, 현재 종이를 같은 크기의 종이 9개로 나눈다. 그리고 나누어진 각각의 종이에 대해서 다시 같은 과정을 반복한다.

즉, 한 종이가 모두 같은 수로 이루어져 있으면 그대로 세고, 그렇지 않으면 가로와 세로를 각각 3등분하여 9개의 종이로 나누어 다시 확인한다.

이와 같은 방법으로 종이를 모두 나누었을 때, -1로만 채워진 종이의 개수, 0으로만 채워진 종이의 개수, 1로만 채워진 종이의 개수를 각각 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N이 주어진다.

N1 ≤ N ≤ 3^7을 만족하며, 3^k 꼴이다.

다음 N개의 줄에는 N개의 정수로 행렬이 주어진다.

출력

첫째 줄에 -1로만 채워진 종이의 개수를 출력한다.

둘째 줄에 0으로만 채워진 종이의 개수를 출력한다.

셋째 줄에 1로만 채워진 종이의 개수를 출력한다.

예제 입력 1

9
0 0 0 1 1 1 -1 -1 -1
0 0 0 1 1 1 -1 -1 -1
0 0 0 1 1 1 -1 -1 -1
1 1 1 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0
0 1 -1 0 1 -1 0 1 -1
0 -1 1 0 1 -1 0 1 -1
0 1 -1 1 0 -1 0 1 -1

예제 출력 1

10
12
11

댓글

현재 작성된 댓글이 없습니다.