a,b,s:array[0..52]of longint;
x,t,i,c,j,n,m:longint;
function min(a,b:longint):longint;
begin
if a<b then exit(a) else exit(b);
end;
procedure qsort(l,r:longint);
var i,j:longint;
begin
i:=l;j:=r;x:=a[(l+r)div 2];
repeat
while a[i]<x do inc(i);
while a[j]>x do dec(j);
if i<=j then begin
t:=a[i];a[i]:=a[j];a[j]:=t;
t:=b[i];b[i]:=b[j];b[j]:=t;
inc(i);dec(j);
end;
until i>j;
if i<r then qsort(i,r);
if j>l then qsort(l,j);
end;
begin
read(n);read(c);
for i:=1 to n do readln(a[i],b[i]);
qsort(1,n);
for i:=0 to 1004 do
for j:=0 to 1004 do begin
f[i,j,0]:=99999999;f[i,j,1]:=99999999;
end;
f[c,c,0]:=0;f[c,c,1]:=0;
for i:=1 to n do s[i]:=s[i-1]+b[i];
for i:=c downto 1 do begin
for j:=c to n do begin
f[i,j,0]:=min(f[i+1,j,1]+(a[j]-a[i])*(s[i]+s[n]-s[j]),min(f[i,j,0],f[i+1,j,0]+(a[i+1]-a[i])*(s[i]+s[n]-s[j])));
f[i,j,1]:=min(f[i,j-1,1]+(a[j]-a[j-1])*(s[i-1]+s[n]-s[j-1]),min(f[i,j,1],f[i,j-1,0]+(a[j]-a[i])*(s[i-1]+s[n]-s[j-1])));
end;
end;
writeln(min(f[1,n,0],f[1,n,1]));
end.
测试结果1: 通过本测试点|有效耗时234ms
测试结果2: 通过本测试点|有效耗时78ms
测试结果3: 通过本测试点|有效耗时94ms
测试结果4: 通过本测试点|有效耗时94ms
测试结果5: 选手程序运行超过时限
测试结果6: wa
测试结果7: wa
测试结果8: 选手程序运行超过时限
测试结果9: wa
测试结果10:wa