poj 3253(水题,哈夫曼编码)

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int main(){
    long long n,i,data[20005],p,q,sum;
    scanf("%lld",&n);
    for(i=0;i<n;i++)
        scanf("%d",&data[i]);
    sort(data,data+n);
    sum = 0;
    for(i=0;i<n-1;i++){
        data[i+1] += data[i];
        sum += data[i+1];
//        sort(data+1,data+n);
        p = data[i+1];
        for(q=i+2;q<n&&data[q]<p;q++){
            data[q-1] = data[q];
        }
        data[q-1] = p;
//        cout<<n<<" ";
//        for(int j=0;j<n;j++)
//            cout<<data[j]<<" ";
//        cout<<endl;
    }
    printf("%lld\n",sum);
    return 0;
}

 

posted @ 2021-08-04 17:37  智人心  阅读(70)  评论(0)    收藏  举报