Задача Набор строк

Файл входного файла: typing.in
Файл выходного файла: typing.out
Ограничение по памяти: 64 MB
Ограничение по времени: 2 s

Описание

В Инновационном Отделе НИИ Исследований Данных Строк разработана клавиатура для внутреннего пользования, облегчающая набор строк огромной длины. Кроме обычных клавиш, соответствующих маленьким латинским буквам, на клавиатуре есть еще n функциональных клавиш F 1 , . . . , F n , соответствующих заданным строкам из словаря S 1 , . . . S n . При нажатии такой клавиши F i строка S i загружается во внутреннюю память клавиатуры. В каждый момент времени в памяти может находиться не более одной строки из словаря.

Кроме того, в клавиатуру встроен графический манипулятор "Кыш", с помощью которого легким движением руки можно ввести любую подстроку находящейся в памяти строки.

Вася занимается исследованием эффективности данного нововведения. Для этого ему требуется написать программу, которая будет вычислять минимальное необходимое количество действий (нажатий и использований "Кыш" ) для ввода данной строки S . В момент начала ввода строки память пуста.

Например, если требуется ввести строку "abacaba", а в словаре есть строки "baba" и `"caca", то это можно сделать за четыре действия - нажать F 1 , выбрать манипулятором подстроку "aba", затем нажать "c", и опять выбрать манипулятором подстроку "aba". Если бы нужно было набрать с таким словарем "bacababa" , то это можно сделать за пять действий: "b" , F 2 , "aca", F 1 , "baba".

Формат входных данных

В первой строке входного файла задано число n (1 ≤ n ≤ 50) . В последующих n строках заданы S i , составленные из не более чем 500 символов. В последней строке вводится непустая строка S , длина которой не превосходит 100000 . Все символы строк - маленькие латинские буквы.

Формат выходных данных

Выведите минимальное необходимое количество действий.

Примеры:

ввод вывод

1

1

2
baba
caca
abacaba

4

2
baba
caca
bacababa

5

Added: admin
Difficulty: 9.23111782477
Accepted: 2
Submitted: 51
Analyze this 3 Комментарии

Обсуждение:

Jokser said:
После 20 неудачных попыток я понял одно :) Линейный хэш и бинарный поиск по нему дает TL 11, а хэш-таблица валится на 3-7. Остается только гадать на каком модуле проходит хэш-таблица, если вообще проходит. Придется строить какой-нибудь суффиксный автомат.

Дата: 2010-05-03 19:35


Ответить →
Jokser said:
Все верно, решается с помощью суффиксного автомата :)

Дата: 2010-05-04 00:32


Ответить →
admin said:
классная задачка. динамика + автоматы. Madiyar говорит с хэшом делал.

Дата: 2010-05-06 13:43


Ответить →
Начать обсуждение:

Powered by django, eJudge.