#include #include //< #include #include #include #include #include #include using namespace std; using ll=long long; using ull=unsigned long long; using pll=pair; int main() { ll N; cin>>N; vector A(N); for(auto& a:A) cin>>a; vector num(4,0); for(auto& a:A) { num[max(0LL,3-a)]++; } //1,2,3 vector>> dp(N+1,vector>(N+1,vector(N+1,-1))); dp[0][0][0]=0; auto solve=[&](auto& solve, ll a, ll b, ll c) { if(dp[a][b][c]!=-1) return dp[a][b][c]; double res=0; if(a!=0) res+=(solve(solve,a-1,b,c)+1)*a/(double)(a+b+c); if(b!=0) res+=(solve(solve,a+1,b-1,c)+1)*b/(double)(a+b+c); if(c!=0) res+=(solve(solve,a,b+1,c-1)+1)*c/(double)(a+b+c); res+=(N/(double)(a+b+c)-1); dp[a][b][c]=res; //cout<