#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=1e6*7+9;
long long n,m,k;
double a[maxn],AVE,FC;
double minn=1e25;
inline long long read(){
long long x=0,y=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') y=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*y;
}
int main(){
n=read(),k=read();
for(int i=1;i<=n;i++) a[i]=read();
if(a[1]==a[n]){
printf("No answer!");
return 0;
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++) AVE+=a[i];
AVE/=n;
for(int i=1;i<=n;i++) FC+=(a[i]-AVE)*(a[i]-AVE);
FC/=n;
long long ans=sqrt(k/FC);
for(double i=max(1.0,ans-1.0);i<=ans+1.0;i+=1.0)
if(abs(FC*i*i-k)<minn){
minn=abs(FC*i*i-k);
ans=i;
}
printf("%lld",ans);
return 0;
}
代码如上,求调