전광판 압축


답안 제출

Points: 7
시간 제한: 2.0s
메모리 제한: 1G

문제 유형

정사각형 모양의 전광판이 있다. 전광판은 \(N\)개의 행과 \(N\)개의 열로 이루어져 있으며, 각 픽셀은 꺼져 있거나 켜져 있다.

전광판의 상태를 정사각형 블록 단위로 압축하려고 한다. 하나의 정사각형 구역을 압축하는 규칙은 다음과 같다.

  • 구역에 포함된 모든 픽셀이 꺼져 있다면, 해당 구역을 꺼진 블록 하나로 저장한다.
  • 구역에 포함된 모든 픽셀이 켜져 있다면, 해당 구역을 켜진 블록 하나로 저장한다.
  • 꺼진 픽셀과 켜진 픽셀이 모두 존재한다면, 가로와 세로의 중간을 기준으로 구역을 크기가 같은 네 정사각형으로 나눈다. 나누어진 네 구역을 각각 같은 규칙으로 압축한다.

구역이 한 픽셀까지 작아지면 반드시 꺼진 블록 또는 켜진 블록 하나로 저장할 수 있다.

전광판의 상태가 주어졌을 때, 압축 결과에 저장되는 꺼진 블록과 켜진 블록의 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 전광판의 한 변의 길이 \(N\)이 주어진다.

둘째 줄부터 \(N\)개의 줄에 걸쳐 전광판의 상태가 위에서부터 차례대로 주어진다. 각 줄은 공백 없는 \(N\)개의 문자로 이루어진다.

문자 0은 꺼진 픽셀, 1은 켜진 픽셀을 의미한다.

출력

압축 결과에 저장되는 꺼진 블록의 수와 켜진 블록의 수를 공백으로 구분하여 출력한다.

제한 사항

  • \(N=2^k\)이다.
  • \(1 \le k \le 7\)
  • 따라서 \(2 \le N \le 128\)이다.

예제 입력 1

8
11000011
11000011
00001100
00001100
10001111
01001111
00111111
00111111

예제 출력 1

9 7

예제 설명 1

입력된 전광판에는 꺼진 픽셀과 켜진 픽셀이 모두 있으므로 먼저 전체 전광판을 네 개의 \(4 \times 4\) 구역으로 나눈다. 이후 각 구역에 두 상태가 섞여 있다면 같은 방법으로 계속 나눈다.

다음 그림에서 왼쪽은 입력된 픽셀의 상태이고, 오른쪽은 압축이 끝난 뒤의 블록을 나타낸다. 연한 회색은 꺼진 상태, 파란색은 켜진 상태이며, 오른쪽 그림의 굵은 테두리 하나가 최종적으로 저장되는 블록 하나를 의미한다.

처음 나눈 네 구역에서 만들어지는 블록의 수는 다음과 같다.

  • 왼쪽 위: 꺼진 블록 3개, 켜진 블록 1개
  • 오른쪽 위: 꺼진 블록 2개, 켜진 블록 2개
  • 왼쪽 아래: 꺼진 블록 4개, 켜진 블록 3개
  • 오른쪽 아래: 꺼진 블록 0개, 켜진 블록 1개

따라서 압축 결과에는 꺼진 블록 \(3+2+4=9\)개와 켜진 블록 \(1+2+3+1=7\)개가 저장된다.

예제 입력 2

4
0000
0000
0000
0000

예제 출력 2

1 0

예제 설명 2

전광판의 모든 픽셀이 꺼져 있으므로 전체 전광판을 꺼진 블록 하나로 저장할 수 있다.


코멘트

현재 작성된 코멘트가 없습니다.