油田

 

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;

int idx[105][105],m,n;
char  pic[105][105];

void dfs(int p, int q, int cnt)
{
    if (p<0 || p>=m || q<0 || q>=n)return;
    if (idx[p][q] > 0 || pic[p][q] != '@')return;
    idx[p][q] = cnt;
    for (int dr = -1; dr <= 1; dr++)
    {
        for (int dc = -1; dc <= 1; dc++)
        {
            if(dr!=0||dc!=0)dfs(p + dr, q + dc, cnt);
        }
    }
}

int main(void)
{
    while (cin >> m >> n && m)
    {
        int cnt = 0;
        for (int i = 0; i < m; i++) scanf("%s", pic[i]);
        memset(idx, 0, sizeof(idx));
        for (int i = 0; i < m; i++)
        {
            for (int j = 0; j < n; j++)
            {
                if (idx[i][j] == 0 && pic[i][j] == '@') dfs(i, j, ++cnt);
            }
        }
        printf("%d\n", cnt);
    }
}

 

posted @ 2021-02-06 20:45  loliconsk  阅读(74)  评论(0)    收藏  举报