백준 2667호 알고리즘 올림피아드 복소수 매기기

Time LimitMemory LimitSubmissionCorrect올바른 사람의 백분율

1 초 128MB 149271 65370 41381 41.636%

문제

에 표시된 바와 같이

, 사각형 모양의 지도가 있습니다.

1은 집이 있는 곳, 0은 집이 없는 곳을 나타냅니다.

철수는 이 지도를 가지고 연결된 집들의 집합체인 단지를 정의하고 그 단지에 번호를 부여하려 한다.

여기서 연결이란 한 집의 좌우 또는 상하로 다른 집들이 있는 경우를 말한다.

대각선의 집은 연결되어 있지 않습니다.

~이다 콤플렉스로 번호가 매겨집니다.

지도를 입력받아 단지의 개수를 출력하고, 각 단지에 속하는 주택의 개수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오.


입력

첫 번째 줄에는 맵의 크기 N(정사각형이므로 가로와 세로의 크기는 동일, 5≤N≤25)을 입력하고 다음 N줄에는 N개의 데이터(0 또는 1) 각각 입력됩니다.

인쇄

첫 번째 줄에 총 콤플렉스 수를 출력합니다.

그런 다음 각 블록의 주택 수를 오름차순으로 정렬하고 한 줄에 하나씩 인쇄합니다.

예제 입력 1 복사

7
0110100
0110101
1110101
0000111
0100000
0111110
0111000

예제 출력 1 복사

3
7
8
9