EduBrick

F. Подпалиндромы

1500 мс · 256 МБ · всё или ничего

Сколько подстрок данной строки являются палиндромами? Одинаковые подстроки на разных местах считаются разными.

Палиндромов может быть до n(n+1)2\frac{n(n+1)}{2} - у строки из одинаковых букв палиндром вообще любая подстрока. Значит, перечислять их нельзя, надо считать.

Наивный способ - для каждого центра расходиться в обе стороны - стоит O(n2)O(n^2): на строке из 10510^5 одинаковых букв это 2,5⋅1092{,}5 \cdot 10^9 сравнений, и в лимит он не укладывается. Такой тест в наборе есть.

Формат ввода

Одна строка длины nn (1≤n≤1051 \le n \le 10^5) из строчных латинских букв.

Формат вывода

Одно число - количество подстрок, являющихся палиндромами.

Примеры

ввод
aaa
вывод
6
ввод
aba
вывод
4
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.