#include<bits/stdc++.h> using namespace std; int xx[8]={-1,-1,0,1,1,1,0,-1}; int yy[8]={0,-1,-1,-1,0,1,1,1}; int n,k,ans; char a[122][122]; int f[122][122]; int bfs(int x,int y){ if(!f[x][y]&&a[x][y]=='1'){ f[x][y]=1; for(int i=0;i<8;++i){ int X=xx[i]+x; int Y=yy[i]+y; if(X>=0&&X<n&&Y>=0&&Y<k&&a[X][Y]=='1'&&f[X][Y]==0) bfs(X,Y); } return 1; } return 0; } int main(){ while(cin>>n>>k&&(n!=0||k!=0)){ getchar(); ans=0; for(int i=0;i<n;++i){ for(int m=0;m<k;++m){ cin>>a[i][m]; } getchar(); } memset(f,0,sizeof(f)); for(int i=0;i<n;++i){ for(int m=0;m<k;++m){ ans+=bfs(i,m); } } cout<<ans<<endl; } } |
Double click to view unformatted code.