牛客竞赛:小a与"204"

大佬的AC代码: 

/*
*把所有的数进行由小到大排列
*大的与小的配对
*/

#include <bits/stdc++.h>
using namespace std;

int n,a[100002];
int main(){
	cin>>n;
	a[0]=0;
	for(int i=1;i<=n;++i){
		cin>>a[i];
	}
	int ans = 0;
	sort(a+1,a+n+1);
	int ll=1,rr=n;
	while(ll<rr){
		ans+=(a[rr]-a[ll]) * (a[rr]-a[ll]);
		rr--;
		ans+=(a[rr]-a[ll]) * (a[rr]-a[ll]);
		ll++;
	}
        //补上第一位为0的情况
	ans += a[n] * a[n]; 
	cout << ans << endl;
}

 超时代码:

#include <iostream>
#include <algorithm>
using namespace std;
#define MAX 100005
int main()
{
  long int n,i,sum=0,max=0;
  long int num[MAX]={0};
  
  cin>>n;
  for(i=0;i<n;i++)
  {
  	  cin>>num[i];
  }
  sort(num,num+n);
  do
  {
  	sum=0;
  	for(i=0;i<n;i++)
  	{
  		
  	   sum += (num[i]-num[i+1])*(num[i]-num[i+1]);	
	}
  	if(sum>max)
  	{
  		max=sum;
	}
		
  }while(next_permutation(num,num+n)); 
  
  cout<<max<<endl;
  

	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42580577/article/details/86600078