Top.Mail.Ru
Ответы

Задача Крест прошу помочь

У нас есть сетка с H строками и W столбцами. Мы обозначаем ячейку в i-й строке сверху и j-м столбце слева сетки как (i,j). Каждая ячейка в сетке имеет символ ‘#’ или ‘.’, написанный в ней. Пусть C[i][j] — символ, написанный в ячейке (i,j). Для целых чисел i и j, при которых хотя бы одно из условий 1≤ileH и 1≤j≤W нарушается, мы определяем C[i][j] как ‘.’ (другими словами, все пространство вне сетки заполнено точками).

Рассмотрим некоторую клетку (a,b). Будем говорить, что клетка (a,b) является центром креста размера n, если выполняются все следующие условия:
C[a][b] равен ‘#’.
C[a+d][b+d], C[a+d][b−d], C[a−d][b+d], и C[a−d][b−d] равны ‘#’, для всех целых чисел d таких, что 1≤d≤n.

Хотя бы один из C[a+n+1][b+n+1], C[a+n+1][b−n−1], C[a−n−1][b+n+1], и C[a−n−1][b−n−1] равен ‘.’.


Сетка имеет несколько крестов. В ячейках, за исключением тех, которые содержат крест, не пишется #. Кроме того, никакие две ячейки, принадлежащие двум разным крестам, не имеют общего угла.

Пусть N=min(H,W), и Sn будет числом крестов размера n. Найдите S1, S2, ..., SN.

Формат входных данных
В первой строке даны целые числа H и W (3≤H,W≤100).

Далее идут H строк, содержащих по W символов ‘#’ и ‘.’, задающие сетку C.

Формат результата
Выведите
S1, S2, ..., SN, разделенные пробелами.

Примеры
Входные данные
5 9
#.#.#...#
.#...#.#.
#.#...#..
.....#.#.
....#...#
Результат работы
1 1 0 0 0
Входные данные
3 3
...
...
...
Результат работы
0 0 0
Входные данные
3 16
#.#.....#.#..#.#
.#.......#....#.
#.#.....#.#..#.#
Результат работы
3 0 0
Тема Линейный поиск в списках и матрицах

По дате
По рейтингу
Аватар пользователя
Ученик

Ох тыж, реально крест...