#include <iostream>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
void find(char a[200][200],int x,int y){
a[x][y]=0;
if(a[x+1][y]=='1')
find(a,x+1,y);
if(a[x-1][y]=='1')
find(a,x-1,y);
if(a[x][y-1]=='1')
find(a,x,y-1);
if(a[x][y+1]=='1')
find(a,x,y+1);
if(a[x-1][y-1]=='1')
find(a,x-1,y-1);
if(a[x-1][y+1]=='1')
find(a,x-1,y+1);
if(a[x+1][y+1]=='1')
find(a,x+1,y+1);
if(a[x+1][y-1]=='1')
find(a,x+1,y-1);
}
int main(){
int n,m,sum=0;
while(scanf("%d %d",&n,&m)&&n!=0&&m!=0){
char a[200][200];
memset(a,0,sizeof(a));
sum=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]=='1'){
find(a,i,j);
sum++;
}
}
}
cout<<sum<<endl;
}
return 0;
}
数羊群
最新推荐文章于 2022-03-06 20:33:45 发布