1. 程式人生 > >洛谷 P1090 合併果子 STL優先佇列

洛谷 P1090 合併果子 STL優先佇列

優先佇列

#include<iostream>
#include<queue>
using namespace std;
int n,a[10005];
long long sum;
priority_queue<int,vector<int>,greater<int> >q;
void solve()
{
    int i;
    cin>>n;
    for(i=1;i<=n;i++)
    {
        cin>>a[i];
        q.push(a[i]);
    }
    
while(q.size()>1) { int l1=q.top(); q.pop(); int l2=q.top(); q.pop(); sum+=l1+l2; q.push(l1+l2); } cout<<sum<<endl; } int main() { solve(); }