785 - Grid Colouring

#include<cstdio>
#include<cstring>
char str[100][100],ch;
void dfs(int i,int j)
{
    if(str[i][j]=='X'||str[i][j]==ch)
    {
        return;
    }
    else if(str[i][j]==' ')
    {
        str[i][j]=ch;
        dfs(i+1,j);
        dfs(i,j+1);
        dfs(i-1,j);
        dfs(i,j-1);
    }
}
int main()
{
    int i=-1,m,n,len;
    while(gets(str[++i]))
    {
        if(str[i][0]!='_')
        {
             continue;
        }
        for(m=0;m<i;m++)
        {
            len=strlen(str[m]);
            for(n=0;n<len;n++)
            {
                if(str[m][n]!='X'&&str[m][n]!=' ')
                {
                    ch=str[m][n];
                    str[m][n]=' ';
                    dfs(m,n);
                }
            }
        }
        for(m=0;m<=i;m++)
        {
            printf("%s\n",str[m]);
        }
        memset(str,'\0',sizeof(str));
        i=-1;
    }
    return 0;
}

0 comments: (+add yours?)