Подразделы

Другие разделы

Дата и время

24/04/2024 08:06:33

Авторизация

Имя:
Пароль:
Зарегистрироваться
Восстановить пароль
 

printЗадачи заочного тура личного первенства 1997

print1. Странный порядок

Один собиратель редких книг нашел книгу, написанную на непонятном языке, но буквы в нем оказались те же, что и в английском языке. В книге был небольшой индекс, но слова в нем оказались расставлены в порядке, отличающемся от порядка букв в английском алфавите. Коллекционер попытался определить порядок букв в алфавите этого странного языка, но это ему не удалось.
Напишите программу, которая сможет выполнить эту работу. Т.е. по набору строк, отсортированному с помощью необычного алфавита, определить последовательность букв в этом алфавите.
Ввод
Ввод содержит упорядоченный набор слов (прописными буквами), по одному слову на строку. Длина слов не превышает 20 букв.
Набор слов завершается строкой с единственным символом `#'. Не все буквы от A до Z будут использованы, но набор слов позволяет однозначно восстановить порядок всех использованных букв.
Вывод
Вывод должен содержать одну строку, содержащую буквы (также прописные) в том порядке, который использовался для упорядочения слов во входном файле.

Пример ввода

XWY
ZX
ZXY
ZXW
YWWX
#

Вывод для примера

XZYW

print2. Кроссворды

Поле для кроссворда можно хранить в виде матрицы 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 +    +    +    +    +
     +    +    +    +    +    +
     ++++++++++++++++++++++++++
loading