记录编号 | 8126 | 评测结果 | WEEWTWETTA | ||
---|---|---|---|---|---|
题目名称 | 工作分配 | 最终得分 | 10 | ||
用户昵称 | 是否通过 | 未通过 | |||
代码语言 | Pascal | 运行时间 | 3.407 s | ||
提交时间 | 2008-11-13 07:54:01 | 内存使用 | 7.74 MiB | ||
program divide; const maxnum=9999999; var i,j,k,l,m,n,c:longint; a,f:array[-2..1000000] of longint; procedure Sort(l,r:Integer); var i,j,x,y,x1,y1:integer; begin i:=l; j:=r; x:=a[(l+r)div 2]; repeat while a[i]<x do i:=i+1; while x<a[j] do j:=j-1; if i<=j then begin y:=a[i];a[i]:=a[j]; a[j]:=y; i:=i+1; j:=j-1; end; until i>j; if l<j then Sort(l,j); if i<r then Sort(i,r); end; begin assign(input,'divide.in');reset(input); assign(output,'divide.out');rewrite(output); readln(n,k,c); for i:=1 to n do read(a[i]); sort(1,n); for i:=1 to k do f[i]:=maxlongint; for i:=k+1 to n do f[i]:=c+sqr(a[i]-a[1]); f[0]:=0; for i:=1 to n do for j:=i-k+1 to k+1 do if f[i]>f[j-1]+c+sqr(a[i]-a[j]) then f[i]:=f[j-1]+c+sqr(a[i]-a[j]); writeln(f[n]); end.