#include #include int n, m; char c[500][501]; void Init(); int GetNeighbours(int, int); void Zero(int, int); int main() { char temp[2]; int i, j, l; scanf("%d%d", &n, &m); gets(temp); for (i=0;i= 0) if (c[a-1][b] == '1') l++; if (a + 1 < n) if (c[a+1][b] == '1') l++; if (b - 1 >= 0) if (c[a][b-1] == '1') l++; if (b + 1 < m) if (c[a][b+1] == '1') l++; return l; } void Zero(int a, int b) { int l; c[a][b] = '0'; if (a - 1 >= 0) if (c[a-1][b] == '1') { l = GetNeighbours(a-1,b); if (l == 0) c[a-1][b] = '0'; if (l == 1) Zero(a-1,b); } if (a + 1 < n) if (c[a+1][b] == '1') { l = GetNeighbours(a+1,b); if (l == 0) c[a+1][b] = '0'; if (l == 1) Zero(a+1, b); } if (b - 1 >= 0) if (c[a][b-1] == '1') { l = GetNeighbours(a,b-1); if (l == 0) c[a][b-1] = '0'; if (l == 1) Zero(a, b-1); } if (b + 1 < m) if (c[a][b+1] == '1') { l = GetNeighbours(a,b+1); if (l == 0) c[a][b+1] = '0'; if (l == 1) Zero(a, b+1); } }