希望得到解答(样例过咧。)
查看原帖
希望得到解答(样例过咧。)
1269776
52hertz_yh楼主2024/6/12 13:55

希望得到大佬解答:

#include<bits/stdc++.h>
using namespace std;
long long q1[10000007],q2[10000007],n,h1=1,h2=1,r1,r2,ans,a1,a2;
int main()
{
	cin>>n;
	int m=n;
	for(int i=1;i<=n;i++)
	{
		cin>>q1[i];
	}
	sort(q1+1,q1+n+1);
	r1=n;
	while(h1<=r1)
	{
		if(h2>r2)
		{
			q2[++r2]=q1[h1]+q1[++h1]; 
			h1++;
			ans+=q2[r2]; 
		//	cout<<ans<<endl;	cout<<q2[h2]<<"  "<<q2[r2]<<endl; 
		}
		else
		{
			int a[5]={0,0,0,0,0};
			for(int i=1;i<=2;i++)
			{
				if(q1[h1]>q2[h2])
				{
					a[i]=q1[h1];
					h1++;
				}
				else
				{
					a[i]=q2[h2];
					h2++;
				}
			}
			q2[++r2]=a[1]+a[2];
			ans+=a[1]+a[2];
		//	cout<<ans<<endl;	//cout<<q2[h2]<<"  "<<q2[r2]<<endl; 
		}
	}
//	for(int i=h2;i<=r2;i++)
//	{
//		ans+=q2[i];
//	}
	cout<<ans;
	return 0;
}
2024/6/12 13:55
加载中...