有没有大佬帮萌新看看有什么问题/大哭
查看原帖
有没有大佬帮萌新看看有什么问题/大哭
548339
丨_wjz_丨楼主2024/10/27 16:44

代码如下,思路是排数列,从两边向中间跳跃

#include<iostream>
#include<algorithm> 
using namespace std;
int main()
{
	int n;
	cin>>n;
	
	int a[305];
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	
	
	sort(a+1,a+n+1);
	int str=0;
	int temp=1;
	int h=0;
	if(n%2==1)
	{
		for(int i=1;i<(n-1)/2;i++)
		{
			str+=(a[n+1-temp]-h)*(a[n+1-temp]-h);
			h=a[n+1-temp];
			str+=(a[temp]-h)*(a[temp]-h);
			h=a[temp];
			temp++;
		}
		str+=(a[(n+1)/2]-h)*(a[(n+1)/2]-h);
	}
	else if(n%2==0)
	{
		for(int i=1;i<n/2;i++)
		{
			str+=(a[n+1-temp]-h)*(a[n+1-temp]-h);
			h=a[n+1-temp];
			str+=(a[temp]-h)*(a[temp]-h);
			h=a[temp];
			temp++;
		}
	}
	
	cout<<str<<endl;
	return 0;
 }
2024/10/27 16:44
加载中...