func_code_string: #include <bits/stdc++.h>   #pragma comment(linker,  /STACK:512000000 )   using namespace std;   using li = long long;   using ld = long double;   void solve(bool);   void precalc();   clock_t start;   int main() {     start = clock();     int t = 1;     cout.sync_with_stdio(0);     cin.tie(0);     cout.precision(20);     cout << fixed;     precalc();     while (t--) {       solve(true);     }     cout.flush();     return 0;   }   template <typename T>   T binpow(T q, T w, T mod) {     if (!w) return 1 % mod;     if (w & 1) return q * 1LL * binpow(q, w - 1, mod) % mod;     return binpow(q * 1LL * q % mod, w / 2, mod);   }   template <typename T>   T gcd(T q, T w) {     while (w) {       q %= w;       swap(q, w);     }     return q;   }   template <typename T>   T lcm(T q, T w) {     return q / gcd(q, w) * w;   }   template <typename T>   void make_unique(vector<T>& vec) {     sort(vec.begin(), vec.end());     vec.erase(unique(vec.begin(), vec.end()), vec.end());   }   template <typename T>   void relax_min(T& cur, T val) {     cur = min(cur, val);   }   template <typename T>   void relax_max(T& cur, T val) {     cur = max(cur, val);   }   mt19937 rng(       (unsigned long long)chrono::steady_clock::now().time_since_epoch().count());   void precalc() {}   void solve(__attribute__((unused)) bool read) {     string s;     cin >> s;     li n = (li)s.length();     li res = n * (n + 1) / 2;     for (li l = 0; l < n; ++l) {       bool flag = false;       for (li r = l; r < n && !flag; ++r) {         for (li i = r - 2; i >= l; i -= 2) {           if (s[i] == s[r] && s[i] == s[i + (r - i) / 2]) {             flag = true;             break;           }         }         if (flag) {           break;         }         --res;       }     }     cout << res << endl;   }   