#include<bits/stdc++.h> using namespace std; typedef long long ll; void fun(char a[200][200], int i, int j){ a[i][j] = '0'; if(a[i+1][j]=='1') fun(a, i+1, j); if(a[i+1][j-1]=='1') fun(a, i+1, j-1); if(a[i+1][j+1]=='1') fun(a, i+1, j+1); if(a[i][j+1]=='1') fun(a, i, j+1); if(a[i][j-1]=='1') fun(a, i, j-1); if(a[i-1][j]=='1') fun(a, i-1, j); if(a[i-1][j+1]=='1') fun(a, i-1, j+1); if(a[i-1][j-1]=='1') fun(a, i-1, j-1); } int main (){ int n, m; while(~scanf("%d%d", &n, &m)&&n&&m){ getchar(); char s[200][200]; for(int i = 0;i < n;i++){ for(int j = 0;j < m;j++){ scanf("%c", &s[i][j]); } getchar(); } int cnt = 0; for(int i = 0;i < n;i++){ for(int j = 0;j < m;j++){ if(s[i][j]=='1'){ fun(s, i, j); cnt++; } } } printf("%d\n", cnt); } return 0; } |
Double click to view unformatted code.