60分求助
查看原帖
60分求助
369989
the_Soviet_Union楼主2020/10/8 13:01
#include<bits/stdc++.h>
using namespace std;
unsigned long long n,x,ans;
priority_queue<unsigned long long,vector<unsigned long long>,greater<unsigned long long> >w;
unsigned long long read()
{
   unsigned long long s=0,w=1;
   char ch=getchar();
   while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
   while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
   return s*w;
}
int main()
{
	n=read();
	for(register unsigned long long i=1;i<=n;i++)
    {
        x=read();
        w.push(x);
    }
	while(w.size()>1)
    {
		unsigned long long a=w.top(); 
        w.pop();
		unsigned long long b=w.top(); 
        w.pop();
		ans+=a+b;
		w.push(a+b);
	}
	cout<<ans<<endl;
	return 0;
}
2020/10/8 13:01
加载中...