UVA 11076 Add Again
来源:互联网 发布:网络态势感知研究 编辑:程序博客网 时间:2024/05/16 14:50
#include<cstdio>#include<cstring>#include<vector>#include<cmath>#include<algorithm>#include<queue>using namespace std;//typedef long long ll;const int N = (1<<30)-1;int num[15];typedef unsigned long long ll;int n;ll fact[15];void init(){ fact[0]=fact[1]=1; for(int i=2;i<=12;i++) fact[i]=fact[i-1]*(ll)i;}int main(){ init(); while(~scanf("%d",&n) && n){ memset(num,0,sizeof(num)); for(int i=0;i<n;i++){ int x; scanf("%d",&x); num[x]++; } ll res=0; for(int i=0;i<=9;i++){ ll s=1; if(num[i]==0) continue; for(int j=0;j<=9;j++){ if(num[j]==0) continue; if(i==j) s*=fact[num[j]-1]; else s*=fact[num[j]]; } res+=i*fact[n-1]/s; } ll ans=0; for(int i=0;i<n;i++) ans=ans*10+res; printf("%lld\n",ans); } return 0;}