#include <iostream> using namespace std; void find(int s[][130],int m,int n){ s[m][n] = 0; int i,j; for(i=m-1;i<=m+1;i++){ for(j=n-1;j<=n+1;j++){ if(s[i][j]==1) find(s,i,j); } } } int main(){ int m,n,k; int s[130][130]={0}; char c; while(scanf("%d %d",&m,&n)!=EOF&&m!=0&&n!=0){ getchar(); for(int j=1;j<=m;j++){ for (int i=1; i<=n; i++) { scanf("%c",&c); s[j][i] = c - '0'; } } k=0; for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ if(s[i][j]==1){ find(s,i,j); k++; } } } printf("%d\n",k); } return 0; } |
Double click to view unformatted code.