#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

const int N=1e5+10;
const int mod=1e9+7;

ll fac[N];
int a[N];
int num[N];

ll quick_pow(ll x,ll y){
	ll res=1;
	while(y){
		if(y&1) res=res*x%mod;
		x=x*x%mod;
		y>>=1;
	}
	return res;
}

int main()
{
	fac[0]=1;
	for(int i=1;i<=100000;i++){
		fac[i]=(fac[i-1]*i)%mod;
	}
	int n;
	scanf("%d",&n);
	ll sum=0;
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
		sum+=a[i]; 
	}
	if(sum%n){
		printf("0\n");
		return 0;
	}
	sum/=n;
	sort(a+1,a+n+1);
	int cnt1=0,cnt2=0;
	for(int i=1;i<=n;i++){
		if(a[i]<sum){
			++cnt1;
		}
		else if(a[i]==sum){
			++cnt2;
		}
	}
	int tot=0;
	num[++tot]=1;
	for(int i=2;i<=n;i++){
		if(a[i]==a[i-1]){
			num[tot]++;
		}
		else{
			num[++tot]=1;
		}
	}
	ll ans;
	if(cnt1<=1||n-cnt1-cnt2<=1){
		ans=fac[n];
	}
	else{
		ans=fac[cnt1]*fac[n-cnt1-cnt2]%mod*fac[cnt2]%mod*2%mod;
		ans=(ans*fac[n]%mod*quick_pow(fac[n-cnt2],mod-2)%mod*quick_pow(fac[cnt2],mod-2))%mod;
	}
	for(int i=1;i<=tot;i++){
		ans=ans*quick_pow(fac[num[i]],mod-2)%mod;
	}
	printf("%lld\n",ans);
	return 0;
}