#include <iostream> #include <cmath> using namespace std; int f(int a[][122],int i,int j){ a[i][j]=0; if(a[i+1][j]){ f(a,i+1,j); } if(a[i-1][j]){ f(a,i-1,j); } if(a[i][j+1]){ f(a,i,j+1); } if(a[i][j-1]){ f(a,i,j-1); } if(a[i+1][j+1]){ f(a,i+1,j+1); } if(a[i-1][j-1]){ f(a,i-1,j-1); } if(a[i+1][j-1]){ f(a,i+1,j-1); } if(a[i-1][j+1]){ f(a,i-1,j+1); } } int main(){ int m,n; while(cin>>m>>n){ if(m==0&&n==0){ return 0; } int sum=0; int a[122][122]={0}; string temp; for(int i=1;i<=m;i++){ cin>>temp; for(int j=1;j<=n;j++) a[i][j]=temp[j-1]-'0'; } for(int i=1;i<=m;i++) for(int j=1;j<=n;j++){ if(a[i][j]==1){ sum+=1; f(a,i,j); } } cout<<sum<<endl; } } |
Double click to view unformatted code.