from collections import Counter
n = int(input())
C = Counter(map(int,input().split()))
a,b,c = C[1],C[2],C[3]
mod = 1000000007
r = pow(2,n-2,mod)
print((r*(b+2)*(c+2) - 1) % mod)
数学做法,利用组合恒等式

$ \Sigma_{i=0}^n (i+1)*C_n^i
= \Sigma_{i=0}^n i*C_n^i +  \Sigma_i^n C_n^i
=n*2^{n-1} + 2^n $

\Sigma_{i=0}^n (i+1)*C_n^i<br />= \Sigma_{i=0}^n i*C_n^i +  \Sigma_i^n C_n^i<br />=n*2^{n-1} + 2^n