#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,k,dp[150][150],f[150],INF=1e6;
struct kk{
int l,w;
}a[150];
bool tmp(kk i,kk j){
return i.l<j.l;
}
int d(int x){
return abs(a[x].w-a[x-1].w)+abs(a[x].w-a[x+1].w)-abs(a[x-1].w+a[x+1].w);
}
int main(){
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
scanf("%lld%lld",&a[i].l,&a[i].w);
sort(a+1,a+n+1,tmp);
memset(dp,INF,sizeof(dp));
dp[1][0]=0;
for(int i=2;i<=n;i++)
{
f[i]=f[i-1]+abs(a[i].w-a[i-1].w);
dp[i][0]=f[i];
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i&&j<=k;j++)
{
for(int k=j;k<i;k++)
dp[i][j]=min(dp[i][j],dp[k-1][j-1]+f[i]-f[k]-d(k));
}
}
printf("%lld",dp[n][k]);
return 0;
}
样例过了,测试点全wa,蒟蒻求助