20pts求助!!!
查看原帖
20pts求助!!!
780757
SY_Nightmare楼主2023/9/7 19:31
#include<bits/stdc++.h>
using namespace std;
long long n,k;
double a[7000005];
double p,s;
long long minn=1e12;
long long read()
{
	long long 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();
	sort(a+1,a+n+1);
	if(a[1]==a[n])
	{
		printf("No answer!");
		return 0; 
	}
	for(int i=1;i<=n;i++) p+=a[i];
	p/=n;
	for(int i=1;i<=n;i++) s+=(a[i]-p)*(a[i]-p);
	s/=n;
	double ans=sqrt(s/k);
	for(int i=max(1.0,ans-6.0);i<=ans+6.0;i+=1.0)
	{
		if(abs(s*i*i-k)<minn)
		{
			minn=abs(s*i*i-k);
			ans=i;
		}
	}
	cout<<ans<<endl;
	return 0;
}
2023/9/7 19:31
加载中...