#include <iostream>
using namespace std;
using ll=long long;  // 用ll别名表示long long,避免溢出(n可能很大)

int main() {
    ios::sync_with_stdio(0),cin.tie(0);
    // 算法核心思想:
    // 1. 总区间数 = n*(n+1)/2 (所有可能的子区间数量)
    // 2. 不符合条件的区间数 = 所有全偶数子区间的数量(按位或结果为偶数)
    // 3. 有趣区间数 = 总区间数 - 不符合条件的区间数(至少含一个奇数,按位或为奇数)

    ll n;
    cin>>n;  // 输入数组长度
    
    // 步骤1:计算数组的总区间数(所有可能的子区间数量)
    ll sum=(n*(n+1))/2;  // 总区间数公式:长度为n的数组,子区间数为n(n+1)/2
    
    ll t=0;             // 临时变量:记录当前连续偶数的个数
    ll d_sum=0;         // 累计变量:记录所有全偶数子区间的总数(不符合条件的区间数)
    
    // 步骤2:遍历数组,统计所有连续偶数段能形成的全偶区间数
    for(ll i=1;i<=n;i++){
        ll A;
        cin>>A;  // 输入数组的第i个元素
        
        // 情况1:当前元素是偶数 → 加入当前连续偶数段,计数+1
        if(A%2==0){
            t++;  // 连续偶数的长度加1
            
            // 边界处理:遍历到最后一个元素时,若仍在连续偶数段中,需结算该段的区间数
            if(i==n){
                d_sum+=(t*(t+1))/2;  // 长度为t的连续偶数段,能形成t(t+1)/2个全偶区间
            }
        }
        // 情况2:当前元素是奇数 → 结算之前的连续偶数段(若有)
        else{
            // 如果存在未结算的连续偶数段
            if(t!=0){
                d_sum+=(t*(t+1))/2;  // 计算该段的全偶区间数并累加到d_sum
                t=0;                 // 重置连续偶数计数,开始新的统计
            }
        }
    }
    
    // 步骤3:计算并输出有趣区间数 = 总区间数 - 全偶区间数
    cout<<sum-d_sum;
    return 0;
}