20pts求助
查看原帖
20pts求助
494699
卷王慢即快楼主2022/10/4 21:28

rt。

#include<bits/stdc++.h>
using namespace std;
#define maxn 7000001
typedef long long ll;
int n,k,a[maxn];
double sum=0,s=0;
inline int read()
{
	int x=0,f=1;
	char ch=getchar();
	while(ch<'0'||ch>'9')
	{
		if(ch=='-') f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9')
	{
		x=(x<<1)+(x<<3)+(ch^48);
		ch=getchar();
	}
	return x*f;
}
int main()
{
	n=read(),k=read();
	for(int i=1;i<=n;i++)
	{
		a[i]=read();
		sum+=a[i];
	}
	sum/=n;
	for(int i=1;i<=n;i++) s+=1.0*(sum-a[i])*(sum-a[i]);
	s/=n;
	if(abs(s)<=1e-10) { printf("No answer!"); return 0; }
	int x=floor(sqrt(k/s)),y=ceil(sqrt(k/s));
	if(!x) { printf("%ld",y); return 0; }
	if(abs(s*x*x-k)<=abs(s*y*y-k)) printf("%ld",x);
	else printf("%ld",y);
	return 0;
}

20pts记录

2022/10/4 21:28
加载中...