printРабочее место участника

printЗадачи

260. Два прямоугольника

Ограничения: время – 2s/4s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение 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
.###..
.####.
..###.

Пример вывода 2

NO

Пример ввода 3

4 5
.####
.####
.####
.....

Пример вывода 3

YES
.abbb
.abbb
.abbb
.....

Пример ввода 4

3 3
...
.#.
...

Пример вывода 4

NO

Пример ввода 5

3 3
...
#.#
..#

Пример вывода 5

YES
...
b.a
..a
Источник: XII командный чемпионат школьников Санкт-Петербурга по программированию.
loading