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