#include <bits/stdc++.h>
#define sc scanf
#define pf printf
typedef long long ll;
using namespace std;
void dfs(int i,int j);
vector<string>v;
int row,col;
bool visit [101][101];
int x[]={-1,-1,-1,+0,+0,+1,+1,+1};
int y[]={-1,+0,+1,-1,+1,-1,+0,+1};
int main()
{
// freopen("in.txt","r",stdin);
while(sc("%d %d",&row,&col)==2)
{
v.clear();
if(row==0&&col==0) break;
for(int i=0; i<row; i++)
{
string s;
cin>>s;
v.push_back(s);
}
memset(visit,0,sizeof(visit));
int cnt=0;
for(int i=0; i<row; i++)
{
for(int j=0; j<col; j++)
{
if(visit[i][j]==0)
{
visit[i][j]=1;
if(v[i][j]=='@')
{
cnt++;
dfs(i,j);
}
}
}
}
pf("%d\n",cnt);
}
return 0;
}
void dfs(int r,int c)
{
visit[r][c]=1;
for(int i=0;i<8;i++)
{
int I=r+x[i];
int J=c+y[i];
if((I>=0&&I<row)&&(J>=0&&J<col)&&visit[I][J]==0)
{
visit[I][J]=1;
if(v[I][J]=='@') dfs(I,J);
}
}
}
#define sc scanf
#define pf printf
typedef long long ll;
using namespace std;
void dfs(int i,int j);
vector<string>v;
int row,col;
bool visit [101][101];
int x[]={-1,-1,-1,+0,+0,+1,+1,+1};
int y[]={-1,+0,+1,-1,+1,-1,+0,+1};
int main()
{
// freopen("in.txt","r",stdin);
while(sc("%d %d",&row,&col)==2)
{
v.clear();
if(row==0&&col==0) break;
for(int i=0; i<row; i++)
{
string s;
cin>>s;
v.push_back(s);
}
memset(visit,0,sizeof(visit));
int cnt=0;
for(int i=0; i<row; i++)
{
for(int j=0; j<col; j++)
{
if(visit[i][j]==0)
{
visit[i][j]=1;
if(v[i][j]=='@')
{
cnt++;
dfs(i,j);
}
}
}
}
pf("%d\n",cnt);
}
return 0;
}
void dfs(int r,int c)
{
visit[r][c]=1;
for(int i=0;i<8;i++)
{
int I=r+x[i];
int J=c+y[i];
if((I>=0&&I<row)&&(J>=0&&J<col)&&visit[I][J]==0)
{
visit[I][J]=1;
if(v[I][J]=='@') dfs(I,J);
}
}
}
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন