#include<stdio.h>
#include<math.h>
int main()
{
    long long int n,i,j,temp,b[100099]= {0},k,a[100099],count=0,p,x;
    scanf("%lld",&n);
    for(i=0; i<n; i++)
    {
        scanf("%lld",&a[i]);
    }
    for(i=n-1,k=0; i>=0; i--,k++)
    {
        b[k]=abs(i-k);
    }
    for(i=0; i<n; i++)
    {
        for(j=i; j<n; j++)
        {
            if(a[i]>a[j])
            {
                temp=a[i];
                a[i]=a[j];
                a[j]=temp;
            }
            if(b[i]>b[j])
            {
                temp=b[i];
                b[i]=b[j];
                b[j]=temp;
            }
        }
    }
    for(i=0; i<n; i++)
    {
        if(a[i]!=b[i])
        {
           count=1;
           break;
        }
    }
    if(count==1)
    {
        printf("0\n");
    }
    else
    {
        p=n/2;
        x=lround(pow(2,p))%1000000007;
        printf("%lld\n",x);
    }
    return 0;
}
