# include<stdio.h> void f(int a[][100],int m,int n) { a[m][n] = 0; if(a[m+1][n]==1) { f(a,m+1,n); } if(a[m-1][n]==1) { f(a,m-1,n); } if(a[m][n+1]==1) { f(a,m,n+1); } if(a[m][n-1]==1) { f(a,m,n-1); } if(a[m+1][n+1]==1) { f(a,m+1,n+1); } if(a[m-1][n-1]==1) { f(a,m-1,n-1); } if(a[m+1][n-1]==1) { f(a,m+1,n-1); } if(a[m-1][n+1]==1) { f(a,m-1,n+1); } } int main(void) { char x; int m,n,i,j,a[100][100]; while(scanf("%d%d",&m,&n)!=EOF) { getchar(); int cnt = 0; if(m==0&&n==0) break; for(i=0;i<m;++i) { for(j=0;j<n;++j) { scanf("%c",&x); a[i][j] = x-'0'; } getchar(); } for(i=0;i<m;++i) { for(j=0;j<n;++j) { if(a[i][j]==1) { f(a,i,j); ++cnt; } } } printf("%d\n",cnt); } return 0; } |
Double click to view unformatted code.