11953 - Battleships

#include<bits/stdc++.h>
#define sc scanf
#define pf printf
using namespace std;

char str[103][103];
int N;

void dfs(int i,int j)
{
    if(i<0||j<0||i>=N||j>=N)
    {
        return;
    }
    if(str[i][j]=='.')
    {
        return;
    }

    str[i][j]='.';
    dfs(i,j+1);
    dfs(i,j-1);
    dfs(i+1,j);
    dfs(i-1,j);
}
int main()
{
    int test,i,j,counter,x;
    sc("%d",&test);
    for(x=1;x<=test;x++)
    {
        sc("%d",&N);
        getchar();
        for(i=0;i<N;i++)
        {
            for(j=0;j<N;j++)
            {
                sc("%c",&str[i][j]);
            }
            getchar();
        }

        counter=0;
        for(i=0;i<N;i++)
        {
            for(j=0;j<N;j++)
            {
                if(str[i][j]!='.' && str[i][j]!='@')
                {
                    dfs(i,j);
                    counter++;
                }
            }
        }

        pf("Case %d: %d\n",x,counter);
    }
    return 0;
}

0 comments: (+add yours?)