아이스크림 둘레
면접 대비시간 제한2초메모리 제한512 MB
격자에서 '#' 칸으로 이루어진 연결 요소 중 넓이가 가장 큰 덩어리를 찾고, 넓이가 같으면 둘레가 가장 작은 것을 고른다. 둘레는 구멍과 맞닿은 변도 포함한다.
문제
농부 존이 아이스크림 사업을 시작했다! 그는 아이스크림 덩어리를 만들어 내는 기계를 만들었는데, 아쉽게도 모양이 다소 불규칙하다. 그는 기계를 최적화해서 출력되는 모양이 더 나아지도록 하고 싶다.
기계가 출력하는 아이스크림의 배치는 격자()로 나타낼 수 있다:
##....
....#.
.#..#.
.#####
...###
....##
각 '.' 문자는 빈 공간을, 각 '#' 문자는 크기의 아이스크림 칸을 나타낸다.
아쉽게도 기계는 현재 제대로 작동하지 않아서 서로 분리된 여러 아이스크림 덩어리를 만들 수 있다(위 그림에는 두 개가 있다). 어떤 덩어리에서 아이스크림 칸 하나에서 다른 아이스크림 칸으로 북, 남, 동, 서 방향으로 인접한 아이스크림 칸으로 계속 이동해서 도달할 수 있으면 그 덩어리는 연결되어 있다고 한다.
농부 존은 가장 넓은 아이스크림 덩어리의 넓이와 둘레를 구하려고 한다. 덩어리의 넓이는 그 덩어리에 속한 '#' 문자의 개수이다. 가장 넓은 덩어리가 여러 개면 그중 둘레가 가장 작은 것을 알고 싶어 한다. 위 그림에서 작은 덩어리는 넓이 2, 둘레 6이고 큰 덩어리는 넓이 13, 둘레 22이다.
어떤 덩어리는 가운데에 "구멍"(아이스크림에 둘러싸인 빈 공간)이 있을 수 있다. 그렇다면 구멍과의 경계도 그 덩어리의 둘레에 포함된다. 덩어리가 다른 덩어리 안에 중첩되어 나타날 수도 있는데, 이 경우 둘레는 별개의 덩어리로 취급한다. 예를 들어 다음은 넓이 16인 덩어리 안에 넓이 1인 덩어리가 중첩된 경우이다:
#####
#...#
#.#.#
#...#
#####
아이스크림 덩어리의 넓이와 둘레를 모두 아는 것은 중요하다. 농부 존은 궁극적으로 둘레와 넓이의 비율을 최소화하려 하는데, 그는 이 값을 아이스크림의 아이스페리메트릭 측도라고 부른다. 이 비율이 작으면 아이스크림이 질량에 비해 표면적이 작아서 더 천천히 녹는다.
입력
입력의 첫 줄에는 이 들어 있고, 다음 개의 줄에는 기계의 출력이 주어진다. 적어도 하나의 '#' 문자가 있다.
출력
가장 큰 덩어리의 넓이와 그 둘레를 나타내는 두 정수를 공백으로 구분해 한 줄에 출력한다. 가장 넓은 덩어리가 여러 개면 그중 둘레가 가장 작은 것의 정보를 출력한다.