提交时间:2024-06-23 18:26:33

运行 ID: 30329

#include<bits/stdc++.h> using namespace std; int n,k,x[1505],y[1505],mnx=0x7fffffff,mny=0x7fffffff,mxx=-0x7fffffff,mxy=-0x7fffffff,dis[1505],ans=0x7fffffff,ansx,ansy; void subtask2(){ int x2[1505],y2[1505]; for(int i=1;i<=n;i++)x2[i]=x[i],y2[i]=y[i]; sort(x2+1,x2+1+n); sort(y2+1,y2+1+n); ans=0; for(int i=1;i<=n;i++){ ans+=abs(x2[n+1>>1]-x[i])+abs(y2[n+1>>1]-y[i]); } cout<<ans<<endl; return; } int main(){ cin>>n>>k; for(int i=1;i<=n;i++){ cin>>x[i]>>y[i]; mnx=min(mnx,x[i]),mxx=max(mxx,x[i]); mny=min(mny,y[i]),mxy=max(mxy,y[i]); } if(n==k){ subtask2(); return 0; } for(int i=mnx;i<=mxx;i++){ for(int j=mny;j<=mxy;j++){ for(int l=1;l<=n;l++)dis[l]=abs(i-x[l])+abs(j-y[l]); sort(dis+1,dis+1+n); int sum=0; for(int l=1;l<=k;l++)sum+=dis[l]; if(ans>sum){ ans=sum,ansx=i,ansy=j; } } } cout<<ans<<endl; return 0; }