求助
查看原帖
求助
965646
孟令然2013楼主2024/7/31 15:57

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;
}
2024/7/31 15:57
加载中...