শনিবার, ২ সেপ্টেম্বর, ২০১৭

UVA 11094 - Continents

#include <bits/stdc++.h>
using namespace std;
#define mxx 25;
//string s[25];
char s[25][25],x;
int vis[25][25],n,m,cnt;
int floodfill(int i1,int j1)
{
    int cnt=1;
    if(j1==m)
        j1=0;
    else if(j1==-1)
        j1=m-1;
    if(i1<0||i1>=n||j1<0||j1>=m)
         return 0;
    if(vis[i1][j1])
         return 0;
    if(s[i1][j1] != x)
        return 0;
    vis[i1][j1]=1;
    cnt+=floodfill(i1,j1+1);
    cnt+=floodfill(i1-1,j1);
    cnt+=floodfill(i1,j1-1);
    cnt+=floodfill(i1+1,j1);
    return cnt;
}
int main()
{
    while(cin>>n>>m)
    {
        int i,a,b,j,ans=0,mx=0;
        for(i=0;i<n;i++)
        {
            cin>>s[i];
        }
        cin>>a>>b;
        x=s[a][b];
        floodfill(a,b);
        for(i=0;i<n;i++)
        {
            for(j=0;j<m;j++)
                {
                    if(s[i][j]==x)
                    {
                        cnt=0;
                        ans=floodfill(i,j);
                        mx=max(mx,ans);
                    }
                }
        }
        cout<<mx<<endl;
        for(i=0;i<n;i++)
        {
            for(j=0;j<m;j++)
            vis[i][j]=0;
        }
    }
}

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন

Factorization with prime Sieve

vector <int> prime; char sieve[1000009]; int N=1000009; void primeSieve ( ) { sieve[0] = sieve[1] = 1; prime.push_back(2); ...