求助
  • 板块P4995 跳跳!
  • 楼主ppchnb
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/5/24 20:09
  • 上次更新2023/10/23 14:51:34
查看原帖
求助
765562
ppchnb楼主2023/5/24 20:09
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
void remove_(int a[],int n,int xb)
{
	for(int i=xb;i<n;i++)
	{
		a[i]=a[i+1];
	}
	return ;
}
int main()
{
	int n;
	cin >> n;
	int a[302];
	for(int i=0;i<n;i++)
		cin >> a[i];
	bool flag=0;//这边定义一个flag。0代表找最大值 ;1代表找最小值
	sort(a,a+n);
	int sum=0; 
	int now=0;
	int tmn=n;
	for(int i=0;i<n;i++)
	{
		/*
		for(int j=0;j<n;j++)
			cout << a[j] << " ";
		cout << endl;
		*/
		if(flag==0)
		{
			sum+=pow(abs(a[tmn-1]-now),2);
			now=a[tmn-1];
			remove_(a,tmn,tmn-1);
			tmn--;
			flag=!flag;
		}
		else
		{
			sum+=pow(abs(a[0]-now),2);
			now=a[0];
			remove_(a,tmn,0);
			tmn--;
			flag=!flag;
		}
		//cout << sum << endl;
	}
	cout << sum;
	return 0;
}

这个有点模拟的意味,但还是贪心的思路。 为什么会是50分呢

2023/5/24 20:09
加载中...