编程题
### 问题描述 小齐正在涉足冰淇淋生意!他制造了一台生产不规则形状冰淇淋的机器,但遗憾的是,机器的输出不够理想。现在,他希望对这台机器进行优化,使其产生的冰淇淋形状更加合理。 这台机器产生的冰淇淋形状可以用一个 $N \times N$ 的网格来描述,每个 $.$ 字符代表空白,每个 # 字符代表一个 $1 \times 1$ 的冰淇淋方块。 不幸的是,机器目前运行效果不佳,可能会产生多个不相连的冰淇淋块(上述示例中有两块)。冰淇淋块是连接的,如果你可以通过在北、南、东、西四个方向上重复步行到达块内的任何其他冰淇淋方块。 小齐希望找到面积最大的冰淇淋块,并计算其周长。冰淇淋块的面积是块内 # 字符的数量。如果有多个冰淇淋块的面积相同,他希望知道其中周长最小的冰淇淋块。 注意,冰淇淋块可能在中间有一个“空洞”(被冰淇淋包围的空白区域)。如果有的话,与空洞的边界也计入冰淇淋块的周长。冰淇淋块也可能嵌套在其他冰淇淋块中,此时它们被视为独立的块。 ### 输入格式 第一行包含整数 $N$。 接下来的 $N$ 行描述机器的输出。至少会有一个 # 字符。 ### 输出格式 输出一行,包含两个用空格分隔的整数,第一个整数是最大冰淇淋块的面积,第二个整数是其周长。如果有多个块面积相同,输出其中周长最小的块的信息。 ### 样例输入 ``` 6 ##.... ....#. .#..#. .##### ...### ....## ``` ### 样例输出 ``` 13 22 ``` ### 评测数据规模 $1 \leq N \leq 1000$。
查看答案
赣ICP备20007335号-2