Фабрика паліндромів#2468

Фабрика паліндромів

1 секунда
64 мегабайти
Легка

Розглянемо довільний рядок . Ми будемо називати цей рядок генератором паліндромів. Множина паліндромів , згенерована цим рядком, визначається наступним чином:

Нехай довжина рядка дорівнює . Для кожного від до , рядки g[1..i]g[1..i]^r та g[1..i]g[1..i-1]^r включаються до , де \alpha^r позначає зворотний рядок до .

Наприклад, якщо g = \text{olymp}, то P(g) = \{\text{oo}, \text{o}, \text{ollo}, \text{olo}, \text{olyylo}, \text{olylo}, \text{olymmylo}, \text{olymylo}, \text{olymppmylo}, \text{olympmylo}\}.

Дано генератор паліндромів і рядок . Визначте, скільки разів рядки з зустрічаються як підрядки в . А саме, знайдіть кількість пар таких, що s[i..j] \in P(g).

Вхідні дані

У першому рядку вхідного файлу знаходиться рядок . У другому рядку — рядок . Обидва рядки непорожні і мають довжину не більше символів.

Вихідні дані

Виведіть кількість пар таких, що s[i..j] \in P(g).

Приклади

Приклад 1

Loading
Loading