2014年9月20日 星期六

2014/9/20 codevs 1063 合并果子

// 2004年NOIP全国联赛普及组
// http://codevs.cn/problem/1063/
#include <iostream>
#include <cstdio>
#include <queue>

using namespace std;

int N;
priority_queue<int, vector<int>, greater<int> > pri;

int main()
{
    scanf("%d", &N);

    for(int Ni = 0; Ni < N; Ni++)
    {
        int a; scanf("%d", &a);
        pri.push(a);
    }

    int Ans = 0;

    while( pri.size() >= 2 )
    {
        int f = pri.top(); pri.pop();
        int s = pri.top(); pri.pop();
        Ans += f+s; pri.push(f+s);
    }

    printf("%d\n", Ans);
}

沒有留言:

張貼留言