#include<bits/stdc++.h> using namespace std; int n, m; // char a[100][100]; int x = 0, k = 0; int fx[4] = {0, 1, 0, -1}, fy[4] = {1, 0, -1, 0}; void dfs(int x, int y) { a[x][y] = '~'; k++; for (int i = 0; i < 4; i++) { int tx = x + fx[i]; int ty = y + fy[i]; if (tx >= 1 && tx <= n && ty >= 1 && ty <= m && a[tx][ty] == '*') { dfs(tx, ty); } } } int main() { cin >> n >> m; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cin >> a[i][j]; } } int maxArea = 0, totalArea = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (a[i][j] == '*') { x++; k = 0; dfs(i, j); maxArea = max(maxArea, k); totalArea += k; } } } cout << x << " " << totalArea << " " << maxArea << endl; return 0; } /************************************************************** Problem: 2112 User: zengdongxin Language: C++ Result: Time Limit Exceed ****************************************************************/