Alice 是一名宝石匠,她正在设计一枚戒指,但是她发现有些宝石的形状很奇怪,她想要优化这些宝石,使其形状更加合理。
宝石的形状可以用一个 N\times N (1\le N\le 1000)的矩形图案表示。每个 .
字符表示空的区域,每个 #
字符表示一颗宝石的一部分。
不幸的是,机器当前工作得并不是很正常,可能会生产出多个互不相连的宝石。如果其中每个正方形格子都可以从这个格子出发前往上、下、左、右四个方向上相邻的格子所到达,那么它们就属于同一个宝石,否则它们属于不同的宝石。
Alice 想要求出面积最大的宝石的面积和周长。宝石的面积就是这个宝石中 #
的数量。如果有多颗宝石并列面积最大,她想要知道其中周长最小的宝石的周长。
由于这种宝石十分独特,Alice 计算周长时,会根据边缘点个数计算,也就是如果某一个 .
有多个 #
相连,那么这个 .
就会被多次计算。
例如:
###
#.#
###
上图的面积会被计算为 8,周长会被计算为 16。
第一行输入包含 {N},下面的 {N} 行描述了宝石的摆放情况。
测试数据保证,至少会有一个 #
字符。
请输出包含两个用空格分隔的整数的一行,第一个整数是最大块的面积,第二个整数是它的周长。
如果有多个块的面积相同,请为其中周长最小的块打印信息。
3 ### #.# ###
8 16
6 ##.... ....#. .#..#. .##### ...### ....##
13 22
6 ...... .##... .##... ...... .####. ......
4 8
【数据范围】
{1 \le N \le 1000}
【样例 1 解释】
如下图所示,计算周长时:#
周围各计算一次,即:如果 #
恰好在矩形的边缘上,矩形外面需要视为是 .
统计到周长中。
中间 .
由于与多个#
相连,则要计算多次,所以周长为 12 + 4 = 16 。
【样例 2 解释】
右下角的宝石面积更大一些,面积为 13,周长为 22。
【样例 3 解释】
两个宝石面积一样大,面积都为 4, 上方的宝石周长更小。