#include<cstdio>
int N, M, ans;
char f[105][105];
bool vis[105][105];
void dfs(int x, int y) {
f[x][y] = '.';
for (int dx = -1; dx <= 1; dx++) {
for (int dy = -1; dy <= 1; dy++) {
int xx = x + dx;
int yy = y + dy;
if (0 <= xx && xx < N && 0 <= yy && yy < M && f[xx][yy] == 'W') {
dfs(xx, yy);
}
}
}
return;
}
int main() {
while (scanf("%d%d", &N, &M) == 2) {
getchar();
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
scanf("%c", &f[i][j]);
}
getchar();
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
if (f[i][j] == 'W') {
dfs(i, j);
ans++;
}
}
}
printf("%d", ans);
}
return 0;
}
POJ 2386
最新推荐文章于 2019-08-08 11:30:51 发布