Ограничения: время – 2s/4s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Дана символьная строка `S` длины `N` (`0\ ≤\ N\ ≤\ 100`) и словарь, который содержит `M` слов (`0\ ≤\ M\ ≤\ 100`), длина каждого из которых не превышает `N`.
Строка и слова состоят из символов a, b, …, z.
Напишите программу, которая определяет наименьшее количество символов, которое необходимо вычеркнуть из
заданной строки `S`, чтобы результирующую строку можно было представить как последовательность слов словаря.
Количество использований каждого слова не ограничивается. Считается, что пустую строку можно представить с
помощью слов любого словаря.
В первой строке входного файла находится два целых числа `N` и `M`, разделенных пробелом.
Во второй строке находится символьная строка `S`. В каждой из следующих `M` строк находится слово словаря.
В единственной строке выходного файла должно находиться натуральное число – минимальное количество вычеркиваний,
после которых зашифрованная строка может быть представлена в виде последовательности слов словаря.
Пример ввода
11 5
abafchtdsya
aba
a
bach
dsy
zero
Примечание: Строка в примере после вычеркивания лишних букв f и t примет вид abachdsya (было сделано два вычеркивания: abafchtdsya), и может быть представлена как последовательность следующих слов: a, bach, dsy, a.
XIV Всеукраинская олимпиада по информатике, 2001