Семестровая олимпиада по программированию для 1-3 курса
студентов кафедры Прикладной математики, а также всех желающих с
других факультетов и кафедр
Олимпиада будет проведена в два этапа:
С 24 октября по 3 ноября необходимо правильно решить одну или две
из нижеследующих квалификационных задач и или положить листинг прог-
рамм(ы) в кармашек на кафедре Прикладной математики Демидову А.К. или
отправить исходные тексты программ(ы) электронной почтой по адресу
andre@lion.tu-chel.ac.ru или показать решение 4 ноября перед соревно-
ваниями с 13-30 до 14-30 (в ауд. 323/3б)
Ко второму очному этапу соревнований допускаются только те, кто
правильно решил хотя бы одну квалификационную задачу. Соревнования
состоятся во вторник 4 ноября с 15-00 до 18-00 в дисплейных классах
кафедры Прикладной математики (ауд.332/3б и 327/3б).
При подготовке к олимпиаде можно посмотреть набор задач соревнова-
ний ACM на сервере PRIMA в каталоге H:\LNGS\OLIMP. Задачи на англий-
ском языке в HTML- формате, там же находится HTML-вьювер
#200 Странный порядок
Один собиратель редких книг нашел книгу, написанную на непонятном
языке, но буквы в нем оказались те же, что и в английском языке. В
книге был небольшой индекс, но слова в нем оказались расставлены в
порядке, отличающемся от порядка букв в английском алфавите. Коллек-
ционер попытался определить порядок букв в алфавите этого странного
языка, но это ему не удалось.
Напишите программу, которая сможет выполнить эту работу. Т.е. по
набору строк, отсортированному с помощью необычного алфавита, опреде-
лить последовательность букв в этом алфавите.
Вход
В файле INPUT.DAT находится упорядоченный набор слов (прописными
буквами), по одному слову на строку. Длина слов не превышает 20 букв.
Набор слов завершается строкой с единственным символом `#'. Не все
буквы от A до Z будут использованы, но набор слов позволяет однознач-
но восстановить порядок всех использованных букв.
Выход
В файле OUTPUT.DAT должна быть одна строка, содержащая буквы (так-
же прописные), в том порядке, который использовался для упорядочения
слов во входном файле.
Пример ввода
XWY
ZX
ZXY
ZXW
YWWX
#
Вывод для примера
XZYW
#312. Кроссворды
Поле для кроссворда можно хранить в виде матрицы 0 и 1. 0 пред-
ставляет пустой квадрат, а 1 черный. Некоторые квадраты кроссворда
пронумерованы и нужны для ссылок на слова, которые должны быть напи-
саны по вертикали или горизонтали. Квадрат нумеруется, если это белый
квадрат и либо (а) квадрат ниже является белым и нет белого квадрата
выше, либо (б) квадрат левее является белым и нет белого квадрата
справа от этого. Квадраты нумеруются слева направо и сверху вниз.
Черные и белые квадраты (нумерованные и ненумерованные) можно на-
печатать следующим образом (где nnn номер квадрата):
++++++ ++++++ ++++++
++++++ +nnn + + +
++++++ + + + +
++++++ ++++++ ++++++
Необязательное требование: если черный квадрат находится на краю
его нужно убрать с рисунка (см.пример)
Вход
Первая строка файла INPUT.DAT содержит два числа m<25 и n < 25.
Следующие m содержат n нулей и единиц, разделенных пробелом.
Выход
В выходном файле OUTPUT.DAT должна получиться диаграмма для кроссворда
Пример ввода
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 + ++++++001 + +002 +003 +++++++++++
+ + + + + ++++++ + + + +++++++++++
++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++
+004 + ++++++005 + +006 +007 + +004 + ++++++005 + +006 +007 +
+ + ++++++ + + + + + + ++++++ + + + +
++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++
+008 + +009 + + +010 + + +008 + +009 + ++++++010 + +
+ + + + + + + + + + + + ++++++ + +
+++++++++++++++++++++ +++++++++++ ++++++++++++++++++++++++++++++++++++
+ ++++++011 + + + ++++++011 + ++++++++++++++++
+ ++++++ + + + ++++++ + ++++++++++++++++
++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++
+012 +013 + ++++++014 +015 + + +012 +013 + ++++++014 +015 + +
+ + + ++++++ + + + + + + ++++++ + + +
++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++
+016 + + + + + ++++++016 + + + + ++++++
+ + + + + + ++++++ + + + + ++++++
++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++