#include <bits/stdc++.h>
using namespace std;
long long sum[10010],sqsum[10010],a[10010];
int main()
{
long long n,m,i,ans,now;
double k;
while(cin>>n>>m)
{
for(i=1;i<=n;i++)
scanf("%lld",&a[i]);
sort(a+1,a+n+1);
sum[0]=sqsum[0]=0;
for(i=1;i<=n;i++)
{
sum[i]=sum[i-1]+a[i];
sqsum[i]=sqsum[i-1]+a[i]*a[i];
}
ans=(long long)1<<60;
for(i=1;i<=n-m+1;i++)
{
k=(sum[i+m-1]-sum[i-1])*1.0/m;
now=sqsum[i+m-1]-sqsum[i-1]-2*k*(sum[i+m-1]-sum[i-1])+m*k*k;
ans=min(now,ans);
}
printf("%lld\n",ans);
}
}
51nod 1098 最小方差
最新推荐文章于 2019-07-28 13:21:29 发布