#CF723d. D. 贝兰德的湖泊
D. 贝兰德的湖泊
D. 贝兰德的湖泊
每个测试的时间限制: 秒
内存限制: 兆字节
贝兰德的地图是一个大小为 的矩形,由 的单元格组成。每个单元格要么是陆地,要么是水域。地图被海洋包围。
湖泊 是指由边相连的水域单元格构成的最大连通区域,并且这些单元格不与海洋相连。
形式化地说,湖泊是一个水域单元格的集合,满足:
- 从集合中任意一个单元格出发,可以通过只走上下左右相邻的单元格,且不离开该集合,到达集合中的任意其他单元格;
- 集合中没有任何一个单元格位于矩形的边界上;
- 无法再向集合中添加一个水域单元格,使其仍保持与集合中其它单元格连通。
你的任务是用土地填埋最少数量的水域单元格,使得地图中恰好剩下 个湖泊。
注意:初始地图中的湖泊数量一定不少于 。
输入
第一行包含三个整数 (,)—— 地图的尺寸,以及最终应保留的湖泊数量。
接下来 行,每行包含 个字符,表示地图。
每个字符要么是 '.'(表示水域),要么是 '*'(表示陆地)。
数据保证地图中至少有 个湖泊。
输出
第一行输出一个整数,表示需要从水域变为陆地的最少单元格数量。
接下来 行,每行 个字符,表示修改后的地图。
输出格式必须严格与输入格式相同(不需要输出地图的尺寸)。
如果有多种答案,输出任意一种即可。
数据保证存在符合要求的答案。
示例
输入
5 4 1
****
*..*
****
**.*
..**
输出
1
****
*..*
****
****
..**
输入
3 3 0
***
*.*
***
输出
1
***
***
***