Alt ardıcıllıqların alt ardıcıllıqları#9095

Alt ardıcıllıqların alt ardıcıllıqları

0,1 saniyə
64 meqabayt
Çox asan

Sizə kiçik latın hərflərindən ibarət bir s sətri verilir. Sizin vəzifəniz bu sətrin gözəl və boş olmayan alt ardıcıllıqlarının sayını tapmaqdır.

Alt ardıcıllıq gözəl adlanır, əgər onun bütün boş olmayan alt ardıcıllıqları palindromdursa.

İki alt ardıcıllıq fərqli sayılır, əgər onlar müxtəlif indekslərdəki simvolları silməklə əldə edilə bilər. Yəni, hətta nəticə ardıcıllıqlarının sətirləri eyni olsa belə, silinmiş simvolların indeksləri fərqlidirsə, bu alt ardıcıllıqlar fərqli sayılır.

Giriş

Birinci sətrdə s sətri verilir (1 \leq |s| \leq 10^5), burada bütün simvollar kiçik latın hərfləridir.

Çıxış

Bir tam ədəd çap edin — s sətrinin gözəl və boş olmayan alt ardıcıllıqlarının sayını 10^9+7 () modulu ilə çıxarın.

Nümunələr

Nümunə 1

Loading
Loading

Nümunə 2

Loading
Loading

Qeyd

Birinci nümunədə 4 gözəl alt ardıcıllıq var: "a", "b", "c", "d".