You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
552 B
Python

def fast_pow(a,b):
ans=1
while b:
if(b%2==1):
ans*=a
a*=a
b/=2
return ans
frac=[1]
for i in range(1,1001):
frac.append(i*frac[-1])
n=(int)(input())
m=0
arr=[]
for i in range(0,n):
arr.append((int)(input()))
ans=0
if n==1:
if arr[0]==0:
ans=1
else:
ans=0
else:
ans=frac[n-2]
left=n-2
for i in arr:
if i == -1:
m+=1
elif i==0:
ans=0
left=0
break
else:
ans/=frac[i-1]
left-=i-1
if m<2:
ans=0
else:
ans/=frac[left]
ans*=fast_pow(m,left)
print ans