#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int cmp(const void *a,const void *b)
{
	if(*(int *)a>*(int *)b)
	return 1;
	if(*(int *)a==*(int *)b)
	return 0;
	
	return -1;
}

int main ()
{
	int n,tp;
	scanf("%d",&n);
	
	int arr[n];
	
	int i;
	for(i=0;i<n;i++)
	{
		scanf("%d",&arr[i]);
	}
	
	qsort((void *)arr,n,sizeof(int ),cmp);
	
	if(n%2)
	{
		if(arr[0]!=0)
		{
			printf("0");
			return 0;
		}
		for(i=1;i<n;i+=2)
		{
			if(arr[i]==arr[i+1]&&arr[i]==i+1);
			else
			{
				printf("0");
				return 0;
			}
		}		
		
		tp=(n-1)/2;	
	}
	else
	{
		for(i=1;i<n;i+=2)
		{
			if(arr[i]==arr[i-1]&&arr[i]==i);
			else
			{
				printf("0");
				return 0;
			}
		}
		
		tp=n/2;
	}
	
	
	double cm=pow(10,9),ans=1;

	
	for(i=0;i<tp;i++)
	{
		ans*=2;
		if(ans>cm)
		ans-=cm;
	}
	
	
	printf("%.0f",ans);
	

	return 0;
}