#include<stdio.h> #include<string.h> #include<math.h> void f(int a[120][120],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(){ char x; int m,n,i,j; while(scanf("%d%d",&m,&n)!=EOF){ getchar(); int a[120][120]; int count=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); ++count; } } } printf("%d\n",count); } return 0; } |
Double click to view unformatted code.