Palindrome pairs

题意翻译

给定一个长度为 N 的字符串 S,求有多少四元组 $(l1,r1,l2,r2)$ 满足 $1 \le l1 \le r1 < l2 \le r2 ≤ N$ 且 $S[l1...r1]$,$[Sl2...r2]$ 都是回文串。 $n\le 2000$

题目描述

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&lt;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".

输入输出格式

输入格式


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 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.

输入输出样例

输入样例 #1

aa

输出样例 #1

1

输入样例 #2

aaa

输出样例 #2

5

输入样例 #3

abacaba

输出样例 #3

36