Главная > Рамки
1995

Имеется текстовый экран из M строк и N столбцов (3 ≤ M, N ≤ 100). Первоначально экран заполнен символом "•" (ASCII-код 249). На этом экране одна за другой рисуются прямоугольные рамки толщиной в один символ. Каждая рамка рисуется при помощи своего символа, являющегося заглавной буквой латинского алфавита. При рисовании рамки ее символы замещают на экране ранее изображенные. Рамки нарисованы таким образом, что у каждой рамки видна хотя бы одна пара противолежащих углов. Требуется по данному изображению на экране определить, возможно ли однозначно восстановить последовательность рисования рамок и 1) если восстановление однозначно, определить требуемую последовательность; 2) если восстановление неоднозначно, определить две различные возможные последовательности рисования рамок.

Исходные данные программы расположены в текстовом ASCII-файле, имя которого вводится с клавиатуры. Первая строка исходного файла содержит размеры экрана M и N. Далее расположено M строк по N символов в каждой, задающих изображение на экране.

Результат работы программы выводится одновременно на экран и в текстовый ASCII-файл с именем OUTPUT.TXT. Первая строка содержит одну из возможных последовательностей рисования рамок, заданную перечислением имен рамок без пробелов. Вторая строка повторяет первую, если восстановление однозначно, либо содержит другую возможную последовательность, если восстанвление неоднозначно.

Примечания:

  • Заданное во входном файле изображение заведомо можно получить последовательным рисованием рамок.
  • Каждая сторона рамки состоит не менее, чем из 3 символов.
  • Рамки не могут рисоваться за пределами экрана.
  • Исходные данные корректны, и их проверка не требуется.


Пример

входной файлoutput.txt
6 4
••••
•AAA
WWWA
WAWA
W•W•
WWW•
AW
AW


Система оценки

Максимальная оценка за задачу - 30 баллов.

 
Hosted by uCoz