#include <stdio.h> #include <string.h> char a[1005][85]; int w, h; int dfs(int i, int j) { if (i < 1 || j < 1 || i > h || j > w) return 0; int cnt = 0; if (a[i][j] == '*') { cnt = 1; a[i][j] = '.'; cnt += dfs(i, j + 1); cnt += dfs(i, j - 1); cnt += dfs(i + 1, j); cnt += dfs(i - 1, j); } return cnt; } int main(int argc, char *argv[]) { memset(a, '\0', sizeof(a)); scanf("%d%d", &w, &h); getchar(); int i, j; for (i = 1; i <= h; i++) { for (j = 1; j <= w; j++) scanf("%c", &a[i][j]); getchar(); } int t = 0, s = 0; for (i = 1; i <= h; i++) { for (j = 1; j <= w; j++) { t = dfs(i, j); s = s > t ? s : t; } } printf("%d\n", s); return 0; } /************************************************************** Problem: 2113 User: admin Language: C Result: Accepted Time:79 ms Memory:1228 kb ****************************************************************/