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

Задача . Поиск подстроки


Задача

Темы:
В информатике важную роль играют алгоритмы поиска вхождения подстроки в строку. Например, в строке "АБРАКАДАБРА" подстрока "БРА" встречаетс¤ два раза, а подстрока из одного символа "А" встречается пять раз. Под количеством вхождений понимается количество способов выбрать несколько подряд идущих символов, совпадающих (в том же порядке) с искомой подстрокой. Найденные вхождения могут пересекаться, то есть один символ может быть составной частью нескольких вхождений.
Интерес представляют эффективные алгоритмы поиска вхождений подстроки в строку, то есть алгоритмы, быстро работающие для больших строк. Поэтому мы будем рассматривать в этой задаче случай, когда исходная строка представл¤ет собой многократное повторение какой-то маленькой строки.
Например, рассмотрим строку "МАМА" и повторим ее 3 раза. Получится строка "МАМАМАМАМАМА". В этой строке подстрока "АМА" встречается 5 раз: "МАМАМАМАМАМА", "МАМАМАМАМАМА", "МАМАМАМАМАМА", "МАМАМАМАМАМА", "МАМАМАМАМАМА".
Ответьте на вопросы:
1. Если строку "БАОБАБ" повторить 100 раз, то сколько раз в ней будет встречаться подстрока "БА"?
2. Если строку "РЕМАРКА" повторить 100 раз, то сколько раз в ней будет встречаться подстрока "АР"?
3. Если строку "АУАУОАУАУ" повторить 100 раз, то сколько раз в ней будет встречаться подстрока "АУАУ"?
4. Если строку "ОЙОЙ" повторить 100 раз, то сколько раз в ней будет встречаться подстрока "ЙОЙОЙ"?
5. Если строку "А" повторить 100 раз, то сколько в ней раз будет встречаться подстрока "А", повторенная 50 раз?
Ответ на это задание запишите в виде пяти чисел, каждое число в отдельной строке  - ответы  на заданные вопросы именно в таком порядке. Если вы не можете найти ответ на какой-то из пяти вопросов, запишите в этой строке любое натуральное число.

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

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