#include<stdio.h> #include<stdlib.h> int dx[8] = { -1, -1, 0, 1, 1, 1, 0, -1 }; int dy[8] = { 0, -1, -1, -1, 0, 1, 1, 1 }; void count_sheep(char grid[120][120], int i, int j, int m, int n) { if (grid[i][j] == '1') grid[i][j] = '0'; for (int k = 0; k < 8; ++k) { int x = j + dx[k], y = i + dy[k]; if (x >= 0 && x < n && y >= 0 && y <= m && grid[y][x] == '1') count_sheep(grid, y, x, m, n); } } int main() { int m = 0, n = 0; scanf("%d %d", &m, &n); char grid[120][120] = { '0' }; while (m != 0 && n != 0) { for (int i = 0; i < m; ++i) for (int j = 0; j < n; ++j) { char temp = ' '; scanf("%c", &temp); if (temp == '\n') scanf("%c", &temp); grid[i][j] = temp; } int count = 0; for (int i = 0; i < m; ++i) for (int j = 0; j < n; ++j) { if (grid[i][j] == '1') { count_sheep(grid, i, j, m, n); ++count; } } printf("%d\n", count); scanf("%d %d", &m, &n); } } |
Double click to view unformatted code.