printРабочее место участника

printЗадачи

225. Палиндромы

Ограничения: время – 5s/10s, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (3)

Строка называется палиндромом, если она одинаково читается как слева направо, так и справа налево. Например, abba – палиндром, а omax – нет. Для строки `α` будем обозначать `α[i:j]` ее подстроку длины `j\ -\ i\ +\ 1` с `i`-й по `j`-ю позицию включительно (позиции нумеруются с 1).
Для заданной строки `α` длины `N\ (1\ ≤\ N\ ≤\ 100000)` требуется подсчитать число `Q` пар `(i,j),\ 1\ ≤\ i\ <\ j\ ≤\ N`, таких что `α[i:j]` является палиндромом.
Ввод содержит одну строку `α` длины `N`, состоящую из маленьких латинских букв.
Выведите искомое число `Q`.

Пример ввода 1

aaa

Пример вывода 1

3

Пример ввода 2

abba

Пример вывода 2

2

Пример ввода 3

omax

Пример вывода 3

0
Источник: http://neerc.ifmo.ru/school/archive/
loading