#include<iostream>
#include<cstring>
using namespace std;
const int N = 22;
int n,m;
bool st[N][N];
char g[N][N];
int dx[4] = {-1,0,1,0},dy[4]={0,1,0,-1};
int dfs(int x,int y){
int sum = 1;
st[x][y] = true;
for(int i=0;i<4;i++){
int a=x+dx[i],b=y+dy[i];
if(a<0 || a>=n || b<0 || b>=m || st[a][b] || g[a][b]!='.') continue;
sum += dfs(a,b);
}
return sum;
}
int main(){
while (cin >> m >> n, n || m){
for(int i=0;i<n;i++) scanf("%s",g[i]);
for(int i=0;i<n;i++){
memset(st, 0, sizeof st);
for(int j=0;j<m;j++){
if(g[i][j]=='@') printf("%d\n",dfs(i,j));
}
}
}
}
红与黑(c++实现)
最新推荐文章于 2024-03-16 16:58:34 发布
![](https://img-home.csdnimg.cn/images/20240709112858.png)