#include<algorithm>
#include<iostream>
using namespace std;
char position[1010][1010];
int flagt=0;
int flag[1010][1010];
int flag2[1010][1010];
int n;
void dfs(int y,int x){
if(position[y][x]=='.'||flag[y][x]||(y<1||y>n||x<1||x>n)) return ;
if(position[y+1][x]!='.'&&position[y-1][x]!='.'&&position[y][x-1]!='.'&&position[y][x+1]!='.')
flagt=1;
flag[y][x]=1;
dfs(y+1,x); //up
dfs(y,x-1); //left
dfs(y-1,x); //down
dfs(y,x+1); //right
return ;
}
int main(){
int count=0;
int count2=0;
cin>>n;
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j) cin>>position[i][j];
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j){
if (position[i][j]=='.'||flag[i][j]==1) continue;
else{
count++;
flagt=0;
dfs(i,j);
if(flagt) count2++;
}
}
cout<<count-count2;
return 0;
}
0 回复
0 转发
0 喜欢
3 阅读



