10pts 样例全过 蒟蒻求大佬给测评数据
  • 板块P4995 跳跳!
  • 楼主02Ljh
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/4/6 18:46
  • 上次更新2023/10/28 04:26:23
查看原帖
10pts 样例全过 蒟蒻求大佬给测评数据
578004
02Ljh楼主2022/4/6 18:46

AC一个点 10pts 样例全过 求大佬给测评数据

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int rock[11451419];
inline int read()
{
	int x=0;
	bool flag=1;
	char c=getchar();
	while(c<'0'||c>'9')
	{
		if(c=='-')
			flag=0;
		c=getchar();
	}
	while(c>='0'&&c<='9')
	{
		x=(x<<1)+(x<<3)+c-'0';
		c=getchar();
	}
	return (flag?x:~(x-1));
}
bool cmp(int x,int y)
{
	return x>y;
} 
int main()
{
    long long ans=0;
    int n;
    n=read();
    for(int i=0;i<n;i++)
	{
		rock[i]=read();
		//cout<<rock[i]<<endl;
	}
	sort(rock,rock+n,cmp);
	//int xcy=n;
	/*for(int i=1;;i++)
	{
		//if(xcy<i) break;
		if(i%2==0)
		{
			sor[i]=rock[xcy];
			xcy--;
		}
		else 
		{ 
			sor[i]=rock[min(i,xcy)]; 
			//cout<<"I="<<i<<" ROCK{I}="<<rock[i]<<endl; 
		}
		if(xcy<i) break;
	}*/
	//3 5 6
	//6 5 3    6 5 
	//ans+=rock[0]*rock[0];
	//ans=pow(rock[n-1],2);
	
	//ans=rock[n-1]*rock[n-1]; 
	ans=rock[0]*rock[0]; 
	
	//cout<<rock[0]<<endl;
	/*puts("\n");
	//if(n%2==1) num[n/2+1]=
	for(int i=1;i<=n;i++)
	{
		cout<<sor[i]<<" ";
	}
	puts("\n");*/
	//cout<<ans<<endl;
	int l=0,r=n-1;
	while(l<r)
	{
		ans=ans+(rock[r]-rock[l])*(rock[r]-rock[l]);
		//cout<<"ans="<<ans<<" rock["<<l<<"]="<<rock[r]<<" rock["<<r<<"]="<<rock[l]<<endl;
		l++; r--;
	} 
	if(n%2==1)
	{
		//r--;
		l++;
		ans+=(rock[r]-rock[l])*(rock[r]-rock[l]);
	}
	cout<<ans;
    return 0;
}
2022/4/6 18:46
加载中...