#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));
            }
        }
    }
    
}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐