提交时间:2022-08-04 12:59:54
运行 ID: 57252
#include<iostream> #include<string> using namespace std; string im[100]; int n,ans; const int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0}; bool check(int x,int y){ return im[x][y]!='*'&&im[x][y]!=' '; } void flood_fill(int x,int y){ im[x][y]='*'; for(int i=0;i<4;i++){ int tx=x+dx[i],ty=y+dy[i]; if(tx>-1&&tx<n&&ty>-1&&ty<im[tx].size()&&check(tx,ty)) flood_fill(tx,ty); } } int main(){ scanf("%d",&n); cin>>im[0]; for(int i=0;i<n;i++) getline(cin,im[i]); for(int i=0;i<n;i++){ int len=im[i].size(); for(int j=0;j<len;j++){ if(check(i,j)){ ans++; flood_fill(i,j); } } } printf("%d",ans); return 0; }