多边形识别
时间限制:1秒 内存限制:256M
【问题描述】
在一张点阵图片上有若干个多边形,用 '.' 表示空白点,用 '*' 表示多边形轮廓上的一点,比如下图有一个三角形和一个矩形。
多边形的面积定义为内部 '.' 的个数,比如上图三角形的面积为9,而矩形的面积为30。
现在给出点这图形的信息,请你变成识别其中有多少个多边形?
【输入格式】
第一行为整数:\(N,M\),表示点整图形共有 \(N*M\) 个点。
接下来 \(N\) 行,每行 \(M\) 个字符,表示点阵图形的信息,'.'表示空白点,用 '*' 表示多边形轮廓上的一点。注意:如果有多个多边形,那么它们之间一定都是相离的,即任意两个多边形都不会有公共点。
【输出格式】
输出两行,第一行一个整数,表示多边形个数。第二行由大到小输出每个多边形的面积。
【输入输出样例】
Input
8 24
..........************..
..........*..........*..
....*.....*..........*..
...*.*....*..........*..
..*...*...************..
.*.....*................
*********...............
........................
Output
2
9 30
【数据限制】
\(100\%\) 的数据:\(1 ≤ N,M ≤ 100\)。