暴力28
查看原帖
暴力28
1259753
zhaoyutou楼主2025/7/22 20:35
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,c[1005],ans,a,b,mxx,mxn;
int h(int sum)
{
	int s;
	if(sum%2==0)
	{
		s=(sum/2)*(sum/2)+(sum/2)*(sum/2);
	}
	else
	{
		int u=sum/2;
		int v=sum-u;
		s=u*u+v*v;
	}
	return s;
}
inline int read()
{
	int x=0,flag=1;
	char ch=getchar();
	while(ch<'0'||ch>'9')
	{
		if(ch=='-')
			flag=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9')
	{
		x=x*10+ch-'0';
		ch=getchar();
	}
	return x*flag;
}
signed main()
{
	n=read();
	for(int i=1;i<=n;i++)
		c[i]=read();
	for(int i=1;i<=n;i++)
	{
		int mx=-1,mn=105;
		for(int j=1;j<=n;j++)
		{
			if(c[j]>mx)
			{
				mx=c[j];
				mxx=j;
			}
			if(c[j]<mn)
			{
				mn=c[j];
				mxn=j;
			}
		}
		if(mx-mn>17)
		{
			ans+=h(mx-mn-17);
			if((mx-mn-17)%2==0)
			{
				a=(mx-mn-17)/2;
				b=a;
			}
			else
			{
				b=(mx-mn-17)/2;
				a=(mx-mn-17)-b;
			}
			c[mxx]-=a;
			c[mxn]+=b;
		}
	}
	cout<<ans<<endl;
	return 0;
}
28求救
2025/7/22 20:35
加载中...