#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define all(st) st.begin(), st.end()
#define el '\n'
#define sp ' '
#define ld long double
#define fixed(x) fixed << setprecision(x)
#define BI acos(-1)
#define nl '\n'
using ll = long long;
using namespace __gnu_pbds;
using namespace std;
template <class t>
using ordered_set = tree<t, null_type, less<t>, rb_tree_tag, tree_order_statistics_node_update>;
template <class t>
using ordered_multiset = tree<t, null_type, less_equal<t>, rb_tree_tag, tree_order_statistics_node_update>;
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n; cin >> n;
vector<ll> arr(n);
for(int i = 0;i < n; i++)
{
cin >> arr[i];
}
vector<ll> suffreq(n+1,0);
ll evencnt = 0 , oddcnt =0;
for(int i = 1; i <= n; i++)
{
suffreq[i] = suffreq[i-1];
if(arr[i-1] == 1) suffreq[i]++;
if(suffreq[i]%2 == 0)
{
evencnt++;
}
else
{
oddcnt++;
}
}
cout << oddcnt*(evencnt+1);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CiNkZWZpbmUgYWxsKHN0KSBzdC5iZWdpbigpLCBzdC5lbmQoKQojZGVmaW5lIGVsICdcbicKI2RlZmluZSBzcCAnICcKI2RlZmluZSBsZCBsb25nIGRvdWJsZQojZGVmaW5lIGZpeGVkKHgpIGZpeGVkIDw8IHNldHByZWNpc2lvbih4KQojZGVmaW5lIEJJIGFjb3MoLTEpCiNkZWZpbmUgbmwgJ1xuJwp1c2luZyBsbCA9IGxvbmcgbG9uZzsKdXNpbmcgbmFtZXNwYWNlIF9fZ251X3BiZHM7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnRlbXBsYXRlIDxjbGFzcyB0Pgp1c2luZyBvcmRlcmVkX3NldCA9IHRyZWU8dCwgbnVsbF90eXBlLCBsZXNzPHQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKdGVtcGxhdGUgPGNsYXNzIHQ+CnVzaW5nIG9yZGVyZWRfbXVsdGlzZXQgPSB0cmVlPHQsIG51bGxfdHlwZSwgbGVzc19lcXVhbDx0PiwgcmJfdHJlZV90YWcsIHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT47CmludCBtYWluKHZvaWQpCnsgCiAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgY2luLnRpZShOVUxMKTsKCmludCBuOyBjaW4gPj4gbjsKdmVjdG9yPGxsPiBhcnIobik7CmZvcihpbnQgaSA9IDA7aSA8IG47IGkrKykKewogIGNpbiA+PiBhcnJbaV07Cn0KICAKdmVjdG9yPGxsPiBzdWZmcmVxKG4rMSwwKTsKbGwgZXZlbmNudCA9IDAgLCBvZGRjbnQgPTA7CmZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQp7CnN1ZmZyZXFbaV0gPSBzdWZmcmVxW2ktMV07CmlmKGFycltpLTFdID09IDEpIHN1ZmZyZXFbaV0rKzsKaWYoc3VmZnJlcVtpXSUyID09IDApCnsKICAgIGV2ZW5jbnQrKzsKfSAKZWxzZQp7CiAgICBvZGRjbnQrKzsKCn0KICAgIAoKfQpjb3V0IDw8IG9kZGNudCooZXZlbmNudCsxKTsKCgp9