Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Чат
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Алгоритмы
Курсы ККДП
Дистрибутивы
Ссылки

HotLog


 

Словарные квадраты

(Время: 1 сек. Память: 16 Мб Сложность: 50%)

Некоторые наборы из n слов длины n обладают интересным свойством - их можно расположить в клетках квадрата n×n так, что все слова набора можно прочитать как в вертикали, так и по горизонтали.

Примером такого набора слов является {"DATE", "FIND", "IDEA", "NEXT"}. Их можно расположить так:

Заметьте, что каждое слово можно прочитать как по горизонтали, так и по вертикали. Такие квадраты называются словарными квадратами, наибольший известный словарный квадрат в английском языке имеет размер 10×10.

Рассмотрим еще один пример словарного квадрата:

Вам даны такие 2n слов, что из них можно построить два различных словарных квадрата размера n×n. Ваша задача состоит в том, чтобы разбить эти слова на две группы, по n слов в каждой, и построить из слов каждой группы словарный квадрат.

Гарантируется, что все данные вам слова являются английскими словами (некоторые из них могут быть достаточно редкими словами, именами, или специальными терминами).

Входные данные

Первая строка входного файла INPUT.TXT содержит целое число n (2 ≤ n ≤ 10). Каждая из следующих 2n строк содержит слово, состоящее из заглавных букв английского алфавита. Каждое слово содержит ровно n букв.

Выходные данные

В выходной файл OUTPUT.TXT выведите два словарных квадрата, построенных из данных слов. Разделите квадраты пустой строкой.

Пример

INPUT.TXTOUTPUT.TXT
14
ARTS
BEST
CRAB
DATE
FIND
IDEA
NEXT
RARE
CRAB
RARE
ARTS
BEST

FIND
IDEA
NEXT
DATE

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

[Обсуждение] [Все попытки] [Лучшие попытки]

Красноярский краевой Дворец пионеров, (c)2006 - 2017, ICQ: 151483