3251 - 宝石匠的困惑

题目描述

Alice 是一名宝石匠,她正在设计一枚戒指,但是她发现有些宝石的形状很奇怪,她想要优化这些宝石,使其形状更加合理。

宝石的形状可以用一个 N\times N1\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, 上方的宝石周长更小。

标签
题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 217
通过人数 89
金币数量 0 枚
难度 基础


上一题 下一题