求改
查看原帖
求改
927938
huige6楼主2023/7/17 12:05
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
ll n,d=0,e=0,sum=0,ans,v;
ll a[10000010],b[10000010];
ll t[100000000];
long long read(){
	ll x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9'){
		if(c=='-')f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		x=x*10+(c-48);
		c=getchar();
	}
	return x*f;
}
int main(){
	n=read();
	memset(a,127,sizeof(a));
	memset(b,127,sizeof(b));
	ll g;
	for(int y=0;y<n;y++){
		g=read();
		t[g]++;
	}
	ll ff=0;
	for(ll y=0;y<=12000;y++){
		while(t[y]){
			t[y]--;
			a[ff]=y;
			ff++;
		}
	}
	for(ll y=1;y<n;y++){
		if(a[d]<b[e])sum=a[d++];
		else sum=b[e++];
		if(a[d]<b[e])sum+=a[d++];
		else sum+=b[e++];
		b[v++]=sum;
		ans+=sum;
	}
	cout<<ans;
}
2023/7/17 12:05
加载中...