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;}

原创粉丝点击