572 - Oil Deposits

#include<stdio.h>
#include<string.h>
char str[101][101];
int R,C;
void dfs(int i,int j)
{
    if((i>=0&&i<R)&&(j>=0&&j<C)&&str[i][j]=='@')
    {
        str[i][j]='*';
        dfs(i+1,j);
        dfs(i+1,j+1);
        dfs(i,j+1);
        dfs(i-1,j+1);
        dfs(i-1,j);
        dfs(i-1,j-1);
        dfs(i,j-1);
        dfs(i+1,j-1);
    }
}
int main()
{
    int i,j,count;
    while(scanf("%d%d",&R,&C)==2)
    {
        if(R==0)
        {
            break;
        }
        for(i=0;i<R;i++)
        {
            getchar();
            for(j=0;j<C;j++)
            {
                scanf("%c",&str[i][j]);
            }
        }
        count=0;
        for(i=0;i<R;i++)
        {
            for(j=0;j<C;j++)
            {
                if(str[i][j]=='@')
                {
                    dfs(i,j);
                    count++;
                }
            }
        }
        printf("%d\n",count);
    }
    return 0;
}

0 comments: (+add yours?)