H. Два прямоугольника
Ограничения: время – 2s/4s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Недавно один известный художник-абстракционист произвел на свет новый шедевр
— картину "Два черных непересекающихся прямоугольника". Картина представляет собой прямоугольник `m\ times\ n`,
разбитый на квадраты `1\ times\ 1`, некоторые из которых закрашены любимым цветом автора — черным.
Федя — не любитель абстрактных картин, однако ему стало интересно, действительно ли на
картине изображены два непересекающихся прямоугольника. Помогите ему это узнать. Прямоугольники
не пересекаются в том смысле, что они не имеют общих клеток.
Ввод
Первая строка входного файла содержит числа `m` и `n` (`1\ ≤\ m,\ n\ ≤\ 200`).
Следующие `m` строк содержат описание рисунка.
Каждая строка содержит ровно `n` символов. Символ "." обозначает пустой квадрат,
а символ "#" — закрашенный.
Вывод
Если рисунок можно представить как два непересекающихся прямоугольника, выведите в первой
строке "YES", а в следующих `m` строках выведите рисунок в том же виде, в каком он задан во
входном файле, заменив квадраты, соответствующие первому прямоугольнику на символ "a",
а второму — на символ "b". Если решений несколько, выведите любое.
Если же этого сделать нельзя, выведите в выходной файл "NO".
Пример ввода 1
4 6
.###..
.###..
...##.
......
Пример вывода 1
YES
.aaa..
.aaa..
...bb.
......
Пример ввода 2
3 6
.###..
.####.
..###.
Пример ввода 3
4 5
.####
.####
.####
.....
Пример вывода 3
YES
.abbb
.abbb
.abbb
.....
Пример ввода 4
3 3
...
.#.
...
Пример ввода 5
3 3
...
#.#
..#
Пример вывода 5
YES
...
b.a
..a
Источник: XII командный чемпионат школьников Санкт-Петербурга по программированию.