Under construction

Still being built. Things may change

Icy Perimeter

Interview

Time limit2sMemory limit512 MB

Summary
Find the connected component of '#' cells with the largest area, breaking ties by smallest perimeter, where perimeter counts all edges touching non-component cells including holes.
Level

Medium5 of 10

Topics
Graph, DFS, BFS, Implementation
Solved
No attempts yet

Problem

Farmer John is going into the ice cream business! He has built a machine that produces blobs of ice cream, but unfortunately in somewhat irregular shapes, and he wants to optimize the machine so the shapes it outputs are more reasonable.

The configuration of ice cream output by the machine can be described with an N×NN \times N grid (1≤N≤10001 \leq N \leq 1000) as follows:

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

Each '.' character represents empty space and each '#' character represents a 1×11 \times 1 square cell of ice cream.

Unfortunately, the machine is not working very well at the moment and might produce multiple disconnected blobs of ice cream (the figure above has two). A blob of ice cream is connected if you can reach any ice cream cell from every other ice cream cell in the blob by repeatedly stepping to adjacent ice cream cells in the north, south, east, and west directions.

Farmer John wants to find the area and perimeter of the blob of ice cream with the largest area. The area of a blob is just the number of '#' characters in the blob. If multiple blobs tie for the largest area, he wants to know the smallest perimeter among them. In the figure above, the smaller blob has area 2 and perimeter 6, and the larger blob has area 13 and perimeter 22.

Note that a blob could have a "hole" in the middle (empty space surrounded by ice cream). If so, the boundary with the hole also counts toward the perimeter of the blob. Blobs can also appear nested within other blobs, in which case they are treated as separate blobs. For example, this case has a blob of area 1 nested within a blob of area 16:

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

Knowing both the area and perimeter of a blob of ice cream is important, since Farmer John ultimately wants to minimize the ratio of perimeter to area, a quantity he calls the icyperimetric measure of his ice cream. When this ratio is small, the ice cream melts slower, since it has less surface area relative to its mass.

Input

The first line of input contains NN, and the next NN lines describe the output of the machine. At least one '#' character will be present.

Output

Output one line containing two space-separated integers: the area of the largest blob, then its perimeter. If multiple blobs tie for the largest area, print the information for whichever of these has the smallest perimeter.

Examples1

  1. Example 1

    Input
    6
    ##....
    ....#.
    .#..#.
    .#####
    ...###
    ....##
    
    Expected output
    13 22