排列組合的簡單模擬
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string>
#include<stack>
#include<map>
#include<vector>
#include<deque>
#include<cmath>
using namespace std;
int main(){
int N,i,temp;
while(cin>>N){
int a[13]={0};
int sum=0,answer=1,t=1,j,k;
for(i=0;i<N;i++){
cin>>temp;
a[temp]++;
sum+=temp;
}
for(i=1;i<=12;i++){
t=1;
temp=a[i];
while(a[i]!=0){
for(j=1;j<=i;j++){
t*=sum-j+1;
t/=j;
//cout<<i<<" ";
}
sum-=i;
a[i]--;
}
for(j=1;j<=temp;j++)
t/=j;
answer*=t;//cout<<t<<" ";
}
cout<<answer<<endl;
}
}