352 - The Seasonal War

#include<stdio.h>
#include<string.h>
int R;
char mat[26][26];
void dfs(int i,int j)
{
    if((i>=0&&i<R)&&(j>=0&&j<R)&&mat[i][j]=='1')
    {
        mat[i][j]='0';
        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,count1=0;
    while(scanf("%d",&R)==1)
    {
        for(i=0;i<R;i++)
        {
            getchar();
            for(j=0;j<R;j++)
            {
                scanf("%c",&mat[i][j]);
            }
        }
        count=0;
        count1++;
        for(i=0;i<R;i++)
        {
            for(j=0;j<R;j++)
            {
                if(mat[i][j]=='1')
                {
                    dfs(i,j);
                    count++;
                }
            }
        }
        printf("Image number %d contains %d war eagles.\n",count1,count);
    }
    return 0;
}

0 comments: (+add yours?)