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