记录编号 38825 评测结果 AAAAAAAAAA
题目名称 工作指派 最终得分 100
用户昵称 GravatarCzb。 是否通过 通过
代码语言 C++ 运行时间 0.391 s
提交时间 2012-06-14 21:56:28 内存使用 0.44 MiB
显示代码纯文本
#include<stdio.h>
#include<stdlib.h>
 
typedef long long Int;
 
int n,k;
 
Int C,a[10001],f[10001];
 
inline Int sqr(Int k)
{
    return k*k;
}
 
inline Int min(Int a,Int b)
{
    return a<b?a:b;
}
 
inline int cmp(const void *a,const void *b)
{
    return *(Int *)a>*(Int *)b?1:-1;
}
 
int main()
{
    freopen("dividea.in","r",stdin);
    freopen("dividea.out","w",stdout);
    int i,j;
    scanf("%d%d%lld",&n,&k,&C);
    for(i=1;i<=n;i++)
    {
        scanf("%lld",&a[i]);
    }
    qsort(a+1,n,sizeof(Int),cmp);
    for(i=k;i<=n;i++)
    {
        f[i]=C+sqr(a[i]-a[1]);
        for(j=k+1;i-j+1>=k;j++)
        {
            f[i]=min(f[i],f[j-1]+C+sqr(a[i]-a[j]));
        }
    }
    printf("%lld\n",f[n]);
    return 0;
}