| 比赛 | 
    板子大赛 | 
    评测结果 | 
    AAAAAAAAAA | 
    | 题目名称 | 
    合并果子 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    zqy | 
    运行时间 | 
    0.067 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    3.62 MiB  | 
    | 提交时间 | 
    2025-01-22 09:23:11 | 
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
const int N=10005;
typedef long long ll;
int n;
priority_queue<ll>q;
ll ans;
int main(){
    freopen("fruit.in","r",stdin);
    freopen("fruit.out","w",stdout); 
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        ll x;
        scanf("%lld",&x);
        q.push(-x); 
    }    
    for(int i=1;i<n;i++){
        int x=-q.top();q.pop();
        int y=-q.top();q.pop();
        ans+=x+y;
        q.push(-(x+y)); 
    }
    printf("%lld\n",ans);
    return 0;
}