求帮助10分
查看原帖
求帮助10分
808654
FIGFUH001楼主2023/7/2 08:31
#include<bits/stdc++.h>
using namespace std;
int n,a[1000005],b[1000005],pos_a=1,pos_b=1,tmp1,tmp2,ans;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		b[i]=200000005;
		
	}sort(a+1,a+n+1);
	for(int i=1;i<n;i++){
		//第一小 
		if(a[pos_a]<b[pos_b])tmp1=a[pos_a++];
		else tmp1=b[pos_b++];
		//第二小 
		if(a[pos_a]<b[pos_b])tmp2=a[pos_a++];
		else tmp2=b[pos_b++];
		//合并,储存
		ans+=tmp1+tmp2;
		b[pos_b]=tmp1+tmp2;
	}
	cout<<ans;
	return 0;
}
2023/7/2 08:31
加载中...