比赛 20120614 评测结果 AAAAAAAAAA
题目名称 工作指派 最终得分 100
用户昵称 Czb。 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-06-14 17:29:08
显示代码纯文本
#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;
}