Icy Perimeter


답안 제출

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

문제 유형

농부 존은 아이스크림 사업을 시작하려고 합니다! 그는 아이스크림 덩어리를 생산하는 기계를 만들었지만, 아쉽게도 생산되는 모양이 다소 불규칙하여 기계를 개선하고자 합니다.

기계에서 출력되는 아이스크림의 배치는 다음과 같이 \(N \times N\) 크기의 격자(\(1 \le N \le 1000\))로 나타낼 수 있습니다.

##....
....#.
.#..#.
.#####
...###
....##

각 \(.\) 문자는 빈 공간을 나타내고, 각 # 문자는 \(1 \times 1\) 크기의 아이스크림 칸을 나타냅니다.

현재 기계가 제대로 작동하지 않아 여러 개의 서로 떨어진 아이스크림 덩어리가 생성될 수 있습니다. (위 예시에는 2개의 덩어리가 있습니다.)

아이스크림 덩어리 내의 임의의 칸에서 상, 하, 좌, 우 인접한 아이스크림 칸으로 이동하여 다른 모든 칸에 도달할 수 있다면 해당 덩어리는 "연결되어 있다"고 합니다.

농부 존은 가장 넓은 넓이를 가진 아이스크림 덩어리의 넓이와 둘레를 구하고 싶어 합니다.

덩어리의 넓이는 덩어리를 구성하는 # 칸의 개수입니다. 만약 넓이가 가장 큰 덩어리가 여러 개라면, 그중 둘레가 가장 작은 것의 정보를 알고 싶어 합니다.

위 예시에서 더 작은 덩어리는 넓이 2, 둘레 6이고, 더 큰 덩어리는 넓이 13, 둘레 22입니다.

참고로 덩어리 중앙에 "구멍"(아이스크림으로 둘러싸인 빈 공간)이 있을 수도 있으며, 이 경우 구멍과 접한 경계선도 둘레에 포함됩니다.

또한 덩어리가 다른 덩어리 내부에 중첩되어 나타날 수도 있으며, 이 경우 각각 별개의 덩어리로 취급됩니다.

입력

첫째 줄에 \(N\)이 주어진다. (\(1 \le N \le 1000\))

둘째 줄부터 \(N\)개의 줄에 걸쳐 기계의 출력을 나타내는 \(N \times N\) 격자가 주어진다. 최소 하나 이상의 # 문자가 존재함이 보장된다.

출력

가장 넓은 아이스크림 덩어리의 넓이와 둘레를 공백으로 구분하여 한 줄에 출력한다.

만약 넓이가 가장 큰 덩어리가 여러 개라면, 그중 둘레가 가장 작은 덩어리의 넓이와 둘레를 출력한다.

예제 입력 1

6
##....
....#.
.#..#.
.#####
...###
....##

예제 출력 1

13 22

출처

USACO 2019 January Contest, Silver


코멘트

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