#include <bits/stdc++.h> using namespace std; void f(char a[122][122], int i, int j) { a[i][j] = '0'; 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 + 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') f(a, i - 1, j); if (a[i - 1][j - 1] == '1') f(a, i - 1, j - 1); 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 = 0; i < n; i++) for (int j = 0; j < m; j++) cin >> a[i][j]; int sum = 0; for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) if (a[i][j] == '1') { f(a, i, j); sum++; } cout << sum << endl; } return 0; } |
Double click to view unformatted code.