优先队列真是个好东西哈哈。。把数字扔进去会自己给你排好序,直接无脑入队就完事了。。
具体代码如下
#include <bits/stdc++.h>
using namespace std;
priority_queue <int,vector<int>,greater<int> > q;
//这个写法就是递增队列的意思,要递减就less
int main()
{
int n,temp,egy=0;
int x,y;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>temp;
q.push(temp);
}
while(q.size()>1)
{
x=q.top();
q.pop();
y=q.top();
q.pop();
q.push(x+y);
egy+=x+y;
}//优先队列真的好用啊哈哈
cout<<egy;
return 0;
}