Олимпиадный тренинг

Задача . D. Покраска прямоугольника 1


Задача

Темы: дп *2300

Есть клетчатый квадрат размера \(n \times n\). Некоторые клетки квадрата покрашены в черный цвет, остальные клетки покрашены в белый. За одну операцию разрешается выбрать некоторый прямоугольник и перекрасить все его клетки в белый цвет. За перекраску прямоугольника размера \(h \times w\) взимается штраф в размере \(\max(h, w)\). Требуется за минимальный суммарный штраф покрасить все клетки в белый цвет.

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

В первой строке через пробел задано одно целое число \(n\) — размер квадрата (\(1 \leq n \leq 50\)).

В следующих \(n\) строках записаны строки длины \(n\), состоящие из символов . и #. Если \(j\)-й символ \(i\)-й строки равен #, то клетка квадрата с координатами \((i, j)\) является чёрной, иначе — белой.

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

Выведите одно число — минимальный суммарный штраф покраски всего квадрата в белый цвет.

Примечание

На картинке вы можете видеть четыре примера и некоторые из оптимальных способов их покрасить.


Примеры
Входные данныеВыходные данные
1 3
###
#.#
###
3
2 3
...
...
...
0
3 4
#...
....
....
#...
2
4 5
#...#
.#.#.
.....
.#...
#....
5

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w642
Комментарий учителя