#include<cstdio>
#include<cstring>
typedef long long LL;
LL mod=1e9+7;
LL ppower(LL s)
{
	LL r=1,a=2;
	while(s)
	{
		if(s&1) r=r*a%mod;
			a=a*a%mod;
			s=s>>1;
	}
	return r;
}
int main()
{
	LL a[100005],n,m,resu;
	while(~scanf("%lld",&n))
	{
		memset(a,0,sizeof(a));
		for(LL i=0;i<n;i++)
		{
			scanf("%lld",&m);
			a[m]++;
		}
		LL flag=0;
		if(n&1)
		{
			if(a[0]>1)
				flag=1;
			else
			{
				for(LL i=1;i<n;i++)
				{
					if(a[i]>2||a[i]==1)
						flag=1;
					if(flag)
						break;
				}
			}
			if(!flag)
				resu=ppower(n/2) ;
		}
		else
		{
			if(a[0]>0)
				flag=1;
			else
			{
				for(LL i=1;i<n;i++)
				{
					if(a[i]>2||a[i]==1)
						flag=1;
					if(flag)
						break;
				}
			}
			if(!flag)
				resu=ppower(n/2) ;
		}
		if(flag) printf("0\n");
		else printf("%lld\n",resu);
	}
	return 0;
}
