#include #define all(a) (a).begin(), (a).end() #define pii pair #define pb push_back using namespace std; int iskaibun(string s, int f, int t) { static vector tmemo, fmemo; sort(all(tmemo)); sort(all(fmemo)); if (binary_search(all(tmemo), pii(f, t))) return 1; if (binary_search(all(fmemo), pii(f, t))) return 0; int i; for (i = 0; i <= (t - f - 1) / 2; i++) { if (s[f + i] != s[t - i]) { fmemo.pb(pii(f, t)); return 0; } } tmemo.pb(pii(f, t)); return 1; } int main() { string s; cin >> s; int p1, p2, a, cnt = 0; for (p1 = 1; p1 <= s.length() - 3; p1++) { if (!iskaibun(s, 0, p1 - 1)) continue; for (p2 = 1; p2 <= s.length() - 3; p2++) { if (!iskaibun(s, p1, p1 + p2 - 1)) continue; for (a = 1; a <= s.length() - 3; a++) { if (s.length() - (p1 + p2 + a) < 1) continue; if (iskaibun(s, p1 + p2 + a, s.length() - 1)) cnt++; } } } cout << cnt; return 0; }