func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long linf = 1LL << 62;   const int iinf = 1000000009;   const double dinf = 1e17;   const int Mod = 1e9 + 9;   const int maxn = 1000005;   int n;   long long a, b[maxn];   long long dp[3][maxn];   void solve() {     ios::sync_with_stdio(false);     cin >> n;     for (int i = 1; i <= n; i++) cin >> a, b[i] = __builtin_popcountll(a);     long long suf = 0;     dp[0][n + 1] = 1;     long long res = 0;     for (int i = n; i >= 1; i--) {       long long sum = 0, mx = 0, ret = 0;       for (int j = i; j <= min(n, i + 64); j++) {         sum += b[j];         mx = max(b[j], mx);         if (mx > sum - mx && sum % 2 == 0) ret--;       }       suf += b[i];       if (suf & 1)         ret += dp[1][i + 1];       else         ret += dp[0][i + 1];       res += ret;       dp[0][i] = dp[0][i + 1];       dp[1][i] = dp[1][i + 1];       if (suf & 1)         dp[1][i]++;       else         dp[0][i]++;     }     cout << res << endl;   }   int main() {     int t = 1;     for (int i = 1; i <= t; i++) solve();     return 0;   }   