e-olymp 2812. Уголок

Задача

Дана прямоугольная доска [latex]M×N[/latex], некоторые клетки в которой вырезаны. Сколькими способами можно поставить на неё «уголок» из трёх клеток так, чтобы все три клетки уголка находились внутри доски и не были вырезаны?

Входные данные

В первой строке входного файла даны два числа [latex]M[/latex] и [latex]N[/latex] [latex](1 \leq M, N \leq 100)[/latex], разделённые пробелом. В следующих [latex]M[/latex] строках содержится по [latex]N[/latex] символов в каждой; [latex]i[/latex]-ый символ [latex]j[/latex]-ой из этих строк равен ‘X’ (большая буква икс), если клетка вырезана, и ‘.’ (точка) в противном случае.

Выходные данные

Выведите одно число — сколько существует способов поставить уголок на данную доску.

Тесты

Входные данные Выходные данные
2 2
..
..
4
2 3
..X
.X.
1
5 4
….
X.XX
….
X..X
..XX
12

Код программы

Решение

Для решения данной задачи создаем динамический массив типа bool x на y. Заполняем соответствующий элемент значением true, когда вводится «.» и значением false в противном случае. Далее увеличиваем значение количества уголков на $1$, если существуют не пустые клетки.

Ссылки

e-olymp
Ideone

Related Images:

2 thoughts on “e-olymp 2812. Уголок

    • Не нужно заполнять «правдой». falsetrue
    • Пожалуйста, поработайте над описанием. Предложите его прочесть однокурсникам. Учтите их замечания. Если они по прочтении поймут, что означает «доска на точке не имеет дырки», то они очень догадливы.
    • Пожалуйста, используйте в программе те же имена переменных, что и в условии задачи.
    • Если всё описание сводится к «Далее увеличиваем значение количества уголков, если существуют не пустые клетки», то зачем вложенные циклы? Попробуйте доходчиво объяснить, что именно вы делаете, для чего написали циклы. Только, пожалуйста, не пересказывайте код программы.

Добавить комментарий