#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int n, m;
char maze[110][110];
int vis[110][110];
//int dir = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
void dfs(int i, int j){
if(i < 0 || i > n || j < 0 || j > m || maze[i][j] != '@' || vis[i][j])
return ;
vis[i][j] = 1;
dfs(i-1, j-1); dfs(i-1, j); dfs(i-1, j+1);
dfs(i, j-1); dfs(i, j); dfs(i, j+1);
dfs(i+1, j-1); dfs(i+1, j); dfs(i+1, j+1);
}
int main()
{
while(cin >> n >> m && n){
for(int i = 0; i < n; ++i){
scanf("%s", maze[i]);
}
memset(vis, 0, sizeof(vis));
int ans = 0;
for(int i = 0; i < n; ++i){
for(int j = 0; j < m; ++j){
if(maze[i][j] == '@' && !vis[i][j]){
dfs(i, j);
++ans;
}
}
}
cout << ans << endl;
}
return 0;
}
uva 572
最新推荐文章于 2024-11-24 15:20:01 发布