1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <bits/stdc++.h>
using namespace std;

#define fo(i, n) for(int i=0; i<n; i++)
#define FO(i, k, n) for(int i=k;i<n;i++)
#define chck(x) cout<<#x<<" "<<x<<"\n";
template<typename... T>
void read(T&... args){
    ((cin >> args), ...);
}

#define ll long long
const ll MOD = 1e9+7;
const int MAX = 3e5+7;

ll in[MAX];

int main(){

    int n;
    cin >> n;

    FO(i, 1, n+1) cin >> in[i];

    int a = 1, b = 1, sum = 0, pos = 0;
    while(a <= n){
        do{
            sum+=in[b];
            b++;
        }while((sum%MOD)%2 != 0 and b <= n);

        if((sum%MOD)%2 == 0){ pos++; }
        else { cout << 0 << "\n"; return 0;}
        a = b;
        sum = 0;
    }

    ll w = 1;
    for(int i = 2; i <= pos; i++)
        w = (w * 2)%MOD;

    cout << w << "\n";

}