Тема: SGU 344 - Weed
WA5. Мое решение - пробегаю несколько раз по полю и заменяю незанятые клетки с числом соседей >= 2 на занятые.
Подскажите, пожалуйста, что может быть не так.
#include <cstdio>
const int maxl = 1001;
char s[maxl][maxl];
int n, m;
int di[4] = {-1, 0, 1, 0};
int dj[4] = {0, 1, 0, -1};
int main()
{
scanf("%d%d", &n, &m);
for (int i = 0; i < n; i++)
scanf("%s", s[i]);
for (int c = 0; c < 10; c++) {
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++) {
int c = 0;
for (int k = 0; k < 4; k++)
if (i + di[k] >= 0 && i + di[k] < n && j + dj[k] >= 0 && j + dj[k] < m && s[i + di[k]][j + dj[k]] == 'X')
++c;
if (c >= 2)
s[i][j] = 'X';
}
}
int c = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
if (s[i][j] == 'X')
++c;
printf("%d\n", c);
return 0;
}