#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;
}
UVA 11076 Add Again
最新推荐文章于 2020-08-18 12:17:50 发布