Олимпиадный тренинг

Задача . E. Dreamoon и строки


Задача

Темы: дп Строки *2200

У Dreamoon есть строка s и шаблон p. Сперва он удаляет ровно x символов из s, в результате чего получается строка s'. Затем он подсчитывает , которое определяется как максимальное количество непересекающихся подстрок, равняющихся p, которые можно выделить в s'. Он хочет, чтобы это число было как можно больше.

Более формально, определим как максимальное значение по всем s', которые можно получить, удалив ровно x символов из s.

Dreamoon хочет знать для всех x от 0 до |s|, где |s| обозначает длину строки s.

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

В первой строке записана строка s (1 ≤ |s| ≤ 2 000).

Во второй строке записана строка p (1 ≤ |p| ≤ 500).

Обе строки состоят только из строчных букв латинского алфавита.

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

Выведите на единственной строке |s| + 1 целых чисел через пробел — для всех x от 0 до |s|.

Примечание

В первом примере соответствующие оптимальные s' после удаления от 0 до |s| = 5 символов из s таковы: {«aaaa, «aaaa», «aa, «aa», «a», «»}.

Для второго примера оптимальные s' могут выглядеть как {«axbaxxb», «abaxxb», «axbab», «abab», «ab, «ab», «a», «»}.


Примеры
Входные данныеВыходные данные
1 aaaaa
aa
2 2 1 1 0 0
2 axbaxxb
ab
0 1 1 2 1 1 0 0

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя