1. Странный порядок
Один собиратель редких книг нашел книгу, написанную на непонятном
языке, но буквы в нем оказались те же, что и в английском языке. В
книге был небольшой индекс, но слова в нем оказались расставлены в
порядке, отличающемся от порядка букв в английском алфавите. Коллекционер попытался определить порядок букв в алфавите этого странного
языка, но это ему не удалось.
Напишите программу, которая сможет выполнить эту работу. Т.е. по
набору строк, отсортированному с помощью необычного алфавита, определить последовательность букв в этом алфавите.
Ввод
Ввод содержит упорядоченный набор слов (прописными
буквами), по одному слову на строку. Длина слов не превышает 20 букв.
Набор слов завершается строкой с единственным символом `#'. Не все
буквы от A до Z будут использованы, но набор слов позволяет однозначно восстановить порядок всех использованных букв.
Вывод
Вывод должен содержать одну строку, содержащую буквы (также прописные) в том порядке, который использовался для упорядочения
слов во входном файле.
Пример ввода
XWY
ZX
ZXY
ZXW
YWWX
#
2. Кроссворды
Поле для кроссворда можно хранить в виде матрицы 0 и 1. 0 представляет пустой квадрат, а 1 черный. Некоторые квадраты кроссворда
пронумерованы и нужны для ссылок на слова, которые должны быть написаны по вертикали или горизонтали. Квадрат нумеруется, если это белый
квадрат и либо (а) квадрат ниже является белым и нет белого квадрата
выше, либо (б) квадрат левее является белым и нет белого квадрата
справа от этого. Квадраты нумеруются слева направо и сверху вниз.
Черные и белые квадраты (нумерованные и ненумерованные) можно напечатать следующим образом (где nnn номер квадрата):
++++++ ++++++ ++++++
++++++ +nnn + + +
++++++ + + + +
++++++ ++++++ ++++++
Ввод
Первая строка входного файла содержит два числа `m\ <\ 25` и `n\ <\ 25`.
Следующие `m` строк содержат `n` нулей и единиц, разделенных пробелом.
Вывод
В выходном файле должна получиться диаграмма для кроссворда
Пример ввода
6 7
1 0 0 0 0 1 1
0 0 1 0 0 0 0
0 0 0 0 1 0 0
0 1 0 0 1 1 1
0 0 0 1 0 0 0
1 0 0 0 0 0 1
Вывод для примера
+++++++++++++++++++++
+001 + +002 +003 +
+ + + + +
++++++++++++++++++++++++++++++++++++
+004 + ++++++005 + +006 +007 +
+ + ++++++ + + + +
++++++++++++++++++++++++++++++++++++
+008 + +009 + + +010 + +
+ + + + + + + +
+++++++++++++++++++++ +++++++++++
+ ++++++011 + +
+ ++++++ + +
++++++++++++++++++++++++++++++++++++
+012 +013 + ++++++014 +015 + +
+ + + ++++++ + + +
++++++++++++++++++++++++++++++++++++
+016 + + + + +
+ + + + + +
++++++++++++++++++++++++++