eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

J. Пiдпослiдовностi пiдпослiдовностей

J. Пiдпослiдовностi пiдпослiдовностей

Вам дано рядок s з маленьких латинських букв. Ваша задача — знайти кiлькiсть гарних непустих пiдпослiдовностей цього рядка.

Пiдпослiдовнiсть називається гарною, якщо усi її непустi пiдпослiдовностi — палiндроми.

Двi пiдпослiдовностi вважаються рiзними, якщо їх можна отримати видаленням символiв з рiзними iндексами. Тобто, навiть якщо рядки пiдпослiдовностей збiгаються, але iндекси символiв, якi буди видаленi, рiзнi, то цi пiдпослiдовностi вважаються рiзними.

Формат вхiдних даних

Перший рядок мiстить рядок s (**1 ≤ |s| ≤ 105**). Усi його символи — маленькi латинськi букви.

Формат вихiдних даних

Виведiть цiле число — кiлькiсть гарних непустих пiдпослiдовностей рядка s по модулю 109 + 7 (1000000007).

Примiтка

У першому прикладi є 4 гарнi пiдпослiдовностi: «a», «b», «c», «d».

Лимит времени 0.1 секунд
Лимит использования памяти 64 MiB
Входные данные #1
abcd
Выходные данные #1
4
Входные данные #2
abacaba
Выходные данные #2
19
Источник 2019-2020 ACM-ICPC, SEERC, 1/4 фiналу, Днiпро, Київ, Львiв, Миколаїв, Тернопiль, Харкiв, 14 вересня 2019