func_code_string: #include <bits/stdc++.h>   using namespace std;   unsigned long xor128() {     static unsigned long x = time(NULL), y = 362436069, z = 521288629,                          w = 88675123;     unsigned long t = (x ^ (x << 11));     x = y;     y = z;     z = w;     return (w = (w ^ (w >> 19)) ^ (t ^ (t >> 8)));   }   double dot(complex<double> a, complex<double> b) {     return a.real() * b.real() + a.imag() * b.imag();   }   double gyaku_dot(complex<double> a, complex<double> b) {     return a.real() * b.imag() - a.imag() * b.real();   }   double leng(complex<double> a) {     return sqrt(a.real() * a.real() + a.imag() * a.imag());   }   double angles(complex<double> a, complex<double> b) {     double cosine = dot(a, b) / (leng(a) * leng(b));     double sine = gyaku_dot(a, b) / (leng(a) * leng(b));     double kaku = acos(min((double)1.0, max((double)-1.0, cosine)));     if (sine <= 0) {       kaku = 2 * 3.141592653589793 - kaku;     }     return kaku;   }   vector<int> convex_hull(vector<complex<double>> a) {     vector<int> ans;     double now_minnest = a[0].real();     int now_itr = 0;     for (long long i = 0; i < a.size(); ++i) {       if (now_minnest > a[i].real()) {         now_minnest = a[i].real();         now_itr = i;       }     }     ans.push_back(now_itr);     complex<double> ba(0, 1);     while (true) {       int now_go = 0;       double now_min = 0;       double now_length = 0;       int starter = ans[ans.size() - 1];       for (int i = 0; i < a.size(); ++i) {         if (i != starter) {           double goa = angles(ba, a[i] - a[starter]);           if (goa - now_min >= 1e-5 ||               (abs(goa - now_min) <= 1e-5 &&                (abs(a[i] - a[starter]) - now_length) >= 1e-5)) {             now_min = goa;             now_go = i;             now_length = abs(a[i] - a[starter]);           }         }       }       if (now_go == ans[0]) break;       ans.push_back(now_go);       ba = complex<double>(a[now_go] - a[starter]);     }     return ans;   }   int ruiseki[1000000];   int main() {     int test_case;     cin >> test_case;     for (long long i = 0; i < test_case; ++i) {       string s;       cin >> s;       int ans = 0;       ruiseki[0] = 0;       for (int i = 0; i < s.length(); ++i) {         if (i != 0) ruiseki[i] = ruiseki[i - 1];         if (s[i] ==  1 ) {           ruiseki[i]++;         }       }       for (int i = 0; i < s.length(); ++i) {         int now = 0;         for (int q = i; q >= 0; --q) {           if (i - q > 25) {             int now_back = i - now + 1;             int now_front = q;             if (now_back > now_front) break;             if (now_back < 0) break;             int hoge = ruiseki[now_front];             if (now_back != 0) {               hoge -= ruiseki[now_back - 1];             }             if (hoge == 0) ans++;             break;           }           if (s[q] ==  1 ) {             now += (1 << (i - q));           }           if (now == i - q + 1) ans++;         }       }       cout << ans << endl;     }   }   