func_code_string: #include <bits/stdc++.h>   using namespace std;   char Ma[4105];   int Mp[4105];   void Manacher(char s[], int len) {     int l = 0;     Ma[l++] =  $ ;     Ma[l++] =  # ;     for (int i = 0; i < len; i++) {       Ma[l++] = s[i];       Ma[l++] =  # ;     }     Ma[l] = 0;     int mx = 0, id = 0;     for (int i = 0; i < l; i++) {       Mp[i] = mx > i ? min(Mp[id * 2 - i], mx - i) : 1;       while (Ma[i + Mp[i]] == Ma[i - Mp[i]]) Mp[i]++;       if (i + Mp[i] > mx) {         mx = i + Mp[i];         id = i;       }     }   }   char s[4105];   long long f[4105];   int ans, cnt;   int tmp[2005 * 2005];   int main() {     scanf( %s , s);     int len = strlen(s);     Manacher(s, len);     long long ans = 0;     for (int i = 1; i < 2 * len + 2; i++) {       for (int j = 1; j < Mp[i]; j++)         if (Ma[i - j + 1] !=  # ) {           tmp[++cnt] = i + j - 1;           f[i - j + 1]++;         }     }     for (int i = 2 * len + 2; ~i; i--) f[i] += f[i + 1];     for (int i = 1; i <= cnt; i++) ans += f[tmp[i] + 1];     printf( %I64d n , ans);   }   