열대우림 임관층

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

열대우림은 보통 돌출층, 임관층, 하목층, 임상층의 네 층으로 나뉜다. 이 중에서 돌출층과 임관층을 구분하는 일이 꽤 까다롭다. 돌출층에는 일반 임관보다 높이 자란 아주 큰 나무가 몇 그루뿐이고, 그 높이는 45m에서 55m에 이른다. 임관층은 높이가 30m에서 45m이고, 열대우림에서 종이 가장 많은 층이다. 생물다양성이 위기를 맞으면서 Whole Forest Observatory는 임관층을 관측하고 연구에 알맞은 지점을 찾는 일을 맡고 있다.

기술자들이 넓은 열대우림을 찍은 위성 스폿 영상에 임관층을 표시하는 간단한 기법을 찾아냈다. 스폿 영상은 정사각형이고, 1 또는 0을 담은 작은 칸인 픽셀로 저장된다. 픽셀 하나는 넓이 1km21\,\text{km}^2인 지역 하나를 나타낸다. 지역의 일부 또는 전부가 임관층이면 그 픽셀은 1이고, 아니면 0이다.

다음 조건이 성립한다.

  • 임관층 하나는 적어도 1 하나로 나타난다.
  • 1인 픽셀 두 개는 행 번호 차이가 1 이하이고 열 번호 차이가 1 이하일 때 서로 붙어 있고, 붙어 있는 1은 같은 임관층에 속한다. 즉 대각선까지 포함해 주위 여덟 칸을 모두 이웃으로 센다. 모든 픽셀이 1인 영상은 큰 임관층 하나다.
  • 서로 다른 임관층은 붙어 있지 않다.
  • 영상의 끝은 이어지지 않는다. 맨 아래 행과 맨 위 행은 이웃이 아니고, 맨 왼쪽 열과 맨 오른쪽 열도 이웃이 아니다.

스폿 영상을 읽어 각 영상에 임관층이 몇 개 있는지 세는 프로그램을 작성하라.

입력

입력은 테스트 케이스 최대 1000개로 이루어지고 파일 끝에서 끝난다. 각 테스트 케이스는 새 줄에서 영상의 한 변 길이인 양의 정수 NN (1N401 \le N \le 40)으로 시작한다. 이어지는 NN개 줄에는 영상의 픽셀이 주어지고, 각 줄은 0 또는 1인 문자 NN개다. 1이 하나도 없는 영상도 주어질 수 있고, 그런 영상에는 임관층이 없다.

출력

각 테스트 케이스마다 한 줄을 출력한다. 줄은 Case #x:로 시작하고, x는 1부터 세는 테스트 케이스 번호다. 그 뒤에 공백 한 칸을 두고 그 영상의 임관층 개수를 출력한다.