#include <iostream>
#include <queue>
#include <string>
using namespace std;
int n,m,dx[4]={0,0,1,-1},dy[4]={1,-1,0,0},cnt,st;
string s[101];
bool vis[101][205];
struct pos{
int x;
int y;
};
queue<pos>q;
int main(void){
//freopen("data.txt","r",stdin);
cin>>n;
getline(cin,s[0]);
for(int i=0;i<n;i++){
getline(cin,s[i]);
//cout<<s[i]<<endl;
}
for(int i=0;i<n;i++){
for(int j=0;j<s[i].length();j++){
if((!vis[i][j])&&(s[i][j]!='*')&&(s[i][j]!=' ')){
vis[i][j]=true;
q.push(pos{i,j});
cnt++;
while(!q.empty()){
int x=q.front().x,y=q.front().y;
q.pop();
for(int i=0;i<4;i++){
int xx=x+dx[i],yy=y+dy[i];
if(xx<0||yy<0||xx>=n||yy>=s[xx].length()||vis[xx][yy]||s[xx][yy]=='*'||s[xx][yy]==' '){
continue;
}
vis[xx][yy]=true;
q.push(pos{xx,yy});
}
}
}
}
}
cout<<cnt<<endl;
}
下载下来数据发现输出对了,但提交 WA。