蒟蒻WA30求助
查看原帖
蒟蒻WA30求助
448911
ZAIA_Enterprise楼主2023/3/8 13:14

借鉴了深入浅出的代码并加以修改

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>

using namespace std;

int n,n2,a1[1145141],a2[1145141];
unsigned long long sum=0;

void read(int &x){ 
	int f=1;x=0;char s=getchar();
	while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}
	while(s>='0'&&s<='9'){x=x*10+s-'0';s=getchar();}
	x*=f;
}

int main(){
	//freopen("in.txt","r",stdin);
	read(n);
	memset(a1,127,sizeof(a1));
	memset(a2,127,sizeof(a2));
	for(int i=0;i<n;i++){
		read(a1[i]);
	}
	sort(a1,a1+n);
	int i=0,j=0,w;
	for(int k=1;k<n;k++){
		w = (a1[i] < a2[j]) ? a1[i++] : a2[j++];
		w += (a1[i] < a2[j]) ? a1[i++] : a2[j++];
		a2[n2++]=w;
		sum += w;
	}
	cout << sum;
}
2023/3/8 13:14
加载中...