eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Подстроки

Подстроки

[http://ru.wikipedia.org/wiki/Биоинформатика] C тех пор как в 1977 году был секвенирован фаг Phi-X174, последовательности ДНК все большего числа организмов были дешифрованы и сохранены в базах данных. Эти данные используются для определения последовательностей белков и регуляторных участков. Сравнение генов в рамках одного или разных видов может продемонстрировать сходство функций белков или отношения между видами (таким образом могут быть составлены Филогенетические деревья). С возрастанием количества данных уже давно стало невозможным вручную анализировать последовательности. В наши дни для поиска по геномам тысяч организмов, состоящих из миллиардов пар нуклеотидов используются компьютерные программы. Программы могут однозначно сопоставить (выровнять) похожие последовательности ДНК в геномах разных видов; часто такие последовательности несут сходные функции, а различия возникают в результате мелких мутаций, таких как замены отдельных нуклеотидов, вставки нуклеотидов, и их "выпадения" (делеции). Один из вариантов такого выравнивания применяется при самом процессе секвенирования. Так называемая техника "дробного секвенирования" (которая была, например, использована Институтом Генетических Исследований для секвенирования первого бактериального генома, Haemophilus inuenzae) вместо полной последовательности нуклеотидов дает последовательности коротких фрагментов ДНК (каждый длиной около 600800 нуклеотидов). Концы фрагментов накладываются друг на друга и, совмещенные должным образом, дают полный геном. Такой метод быстро дает результаты секвенирования, но сборка фрагментов может быть довольно сложной задачей для больших геномов. В проекте по расшифровке генома человека сборка заняла несколько месяцев компьютерного времени. Сейчас этот метод применяется для практически всех геномов, и алгоритмы сборки геномов являются одной из острейших проблем биоинформатики на сегодняшний момент.

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

В n строках заданы n строк одинаковой длины l. Данные строки содержат только символы английского алфавита [A - Za - z] (2n100 000, 2l100 000). При этом строчные и прописные буквы считаются различными символами. Для уменьшения затрат на ввод/вывод в тестах к задаче n × l5 × 1 024 × 1 024.

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

Вывести строку длины l + n - 1 такую, что все заданные во входе строки являются ее подстроками, начинающимися с разных позиций. Гарантируется, что такая строка существует. Если возможны несколько ответов, выведите любой.

Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
abb
bba
Выходные данные #1
abba
Источник 2012 VIII Жаутыковская олимпиада Алматы, Казахстан, 17 января