文章
11
粉丝
318
获赞
6
访问
106.4k
#include <bits/stdc++.h>
using namespace std;
priority_queue<int,vector<int>,greater<int> >q;///小根堆,权值小的先出队
int main()
{
int n,v,ans=0;
scanf("%d",&n);
while(n--)
{
scanf("%d",&v);
q.push(v);
}
while(q.size()>1)
{
int a=q.top();q.pop();
int b=q.top();q.pop();
q.push(a+b);
ans+=a+b;
}
printf("%d\n",ans);
return 0;
}
登录后发布评论
暂无评论,来抢沙发