P4995 求助
  • 板块学术版
  • 楼主Maxuejun
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/5 14:28
  • 上次更新2024/5/5 16:09:54
查看原帖
P4995 求助
935711
Maxuejun楼主2024/5/5 14:28
#include<bits/stdc++.h>
using namespace std;
int read(){
	int x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9'){
		if(c=='-'){
			f=-1;
		}
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		x=x*10+c-'0';
		c=getchar();
	}
	return x*f;
}
void write(int x){
	if(x<0){
		x=-x;
		putchar('-');
	}
	if(x>9){
		write(x/10);
	}
	putchar(x%10+'0');
}
long long a[310],b[310],c[310],n,m,ans;
void judge(int t){
	int cha,num,cha_max=-1;
	for(int i=1;i<=n;i++){
		cha=abs(b[t-1]-a[i]);
		if(cha>=cha_max&&c[i]!=1){
			cha_max=cha;
			num=i;
		}
	}
	b[t]=a[num];
	c[num]=1;
	return ;
}
int main(){
	n=read();
	for(int i=1;i<=n;i++){
		a[i]=read();
	}
	sort(a+1,a+1+n);
	b[1]=a[n];c[n]=1;
	for(int i=2;i<=n;i++){
		judge(i);
	}
	for(int i=1;i<=n;i++){
		ans+=(b[i]-b[i-1])*(b[i]-b[i-1]);
	}
	write(ans);
    return 0;
}

样例无误,但50分

2024/5/5 14:28
加载中...