#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;
}
}
}
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;
}
}
}
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন