60分,没超时,能看看哪错了吗
#include<bits/stdc++.h>
using namespace std;
unsigned long long n,c[1000005],ans=0,a,b;
priority_queue<unsigned long long,vector<unsigned long long>,greater<unsigned long long> > q;
inline int read()
{
register int 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(int i=1;i<=n;i++)
{
c[i]=read();
q.push(c[i]);
}
for(int i=1;i<n;i++)
{
ans+=q.top();
a=q.top();
q.pop();
ans+=q.top();
b=q.top();
q.pop();
q.push(a+b);
}
cout<<ans<<endl;
return 0;
}