既有RE,又有WA,求调
查看原帖
既有RE,又有WA,求调
538427
czy0323楼主2022/8/19 22:26
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,x,buck[100005];
ll fit,sed,ans;
queue<ll> q1,q2;

inline ll read(){
	char ch=getchar();
	ll s=0,f=1;
	while( ch>'9' || ch<'0' ){
		if( ch=='-' )
			f=-1;
		ch=getchar();
	}
	while( ch<='9' && ch>='0' ){
		s=s*10+ch-48;
		ch=getchar();
	}
	return s*f;
}

int main() {
	scanf("%lld",&n);
	for(ll i=1;i<=n;i++){
		x=read();
		buck[x]++;
	}
	for(ll i=1;i<=100000;i++){
		while( buck[i] )
			q1.push(i),buck[i]--;
	}
	for(ll i=1;i<n;i++){
		if( q1.empty() ){
			fit=q2.front(),q2.pop();
			sed=q2.front(),q2.pop();
		}
		else if( q2.empty() ){
			fit=q1.front(),q1.pop();
			sed=q1.front(),q1.pop();
		}
		else{
			if( q1.front()<q2.front() )
				fit=q1.front(),q1.pop();
			else
				fit=q2.front(),q2.pop();
			if( q1.front()<q2.front() )
				sed=q1.front(),q1.pop();
			else
				sed=q2.front(),q2.pop();
		}
		ans+=fit+sed;
		q2.push(fit+sed);
	}
	printf("%lld",ans);
}
2022/8/19 22:26
加载中...