文章
111
粉丝
69
获赞
180
访问
66.2k
#include<bits/stdc++.h>
using namespace std;
const int N = 110;
char g[N][N];
bool st[N][N];
int n, m, cnt;
void dfs(int x, int y)
{
if(x < 0 || x >= n || y < 0 || y >= m || g[x][y] == '*' || st[x][y]) return ;
cnt = 1;
st[x][y] = true;
dfs(x + 1, y);
dfs(x, y + 1);
dfs(x - 1, y);
dfs(x, y - 1);
dfs(x + 1, y - 1);
dfs(x - 1, y - 1);
dfs(x + 1, y + 1);
dfs(x - 1, y + 1);
}
int main()
{
while(cin >> n >> m)
{
if(n == 0 && m == 0) break;
memset(st, 0, sizeof st);
int res = 0;
for(int i = 0; i < n; i ++)
for(int j = 0; j < m; j ++)
cin >> g[i][j];
cnt = 0;
for(int i = 0; i < n; i ++)
{
for(int j = 0; j < m; j ++)
{
if(g[i][j] == '@' && !st[i][j])
{
dfs(i, j);
res += cnt;
}
}
}
cout << res << endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发