#include<bits/stdc++.h>
using namespace std;
int main()
{
int a1=0,a2=0,n=0,i=0,sum=0;
int a[10005];
while(cin>>n)
{
int sum=0;
for(i=0;i<n;i++)
{
cin>>a[i];
}
priority_queue<int , vector<int> , greater<int> >q;//从小到大排列
for(i=0;i<n;i++)
{
q.push(a[i]);//进入队列
}
while(q.size()>1)//因为最后只剩下一组,所以控制长度大于1
{
a1=q.top();//将a1定义为首元素
q.pop();//出队列
a2=q.top();//将a2定义为首元素
q.pop();//出队列
sum+=a1+a2;
q.push(a1+a2);//这里注意将a1+a2进入队列,而不是sum
}
cout<<sum<<endl;//最后输出sum
}
return 0;
}
合并果子
最新推荐文章于 2021-12-23 13:19:52 发布