VK Cup 2012 Qualification Round 2
D
Palindrome pairs
Codeforces
1500
原题
← CE →
翻译中…

You are given a non-empty string $*s*$ consisting of lowercase letters. Find the number of pairs of non-overlapping palindromic substrings of this string.

翻译中…

In a more formal way, you have to find the quantity of tuples $(*a*, *b*, *x*, *y*)$ such that $1 ≤ *a* ≤ *b* < *x* ≤ *y* ≤ |*s*|$ and substrings $*s*[*a*... *b*]$, $*s*[*x*... *y*]$ are palindromes.

翻译中…

A palindrome is a string that can be read the same way from left to right and from right to left. For example, "abacaba", "z", "abba" are palindromes.

翻译中…

A substring $*s*[*i*... *j*]$ ($1 ≤ *i* ≤ *j* ≤ |*s*|$) of string $*s*$ = $*s*_{1}*s*_{2}... *s*_{|*s*|}$ is a string $*s*_{*i*}*s*_{*i* + 1}... *s*_{*j*}$. For example, substring $*s*[2...4]$ of string $*s*$ = "abacaba" equals "bac".

翻译中…

Input

翻译中…

The first line of input contains a non-empty string $*s*$ which consists of lowercase letters ('a'...'z'), $*s*$ contains at most $2000$ characters.

翻译中…

Output

翻译中…

Output a single number — the quantity of pairs of non-overlapping palindromic substrings of $*s*$.

翻译中…

Please do not use the %lld format specifier to read or write 64-bit integers in С++. It is preferred to use cin, cout streams or the %I64d format specifier.

翻译中…

样例

Input #1
aa
Output #1
1
InputCopy OutputCopy
Input #2
aaa
Output #2
5
InputCopy OutputCopy
Input #3
abacaba
Output #3
36
InputCopy OutputCopy
题目信息
题号
159D
时间限制
3 s
内存限制
256 MB
标签
*special
暴力
动态规划
字符串

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。