RT,我用曼哈顿距离做的
#include<bits/stdc++.h>
using namespace std;
int x[51],y[51],xa,ya,l,r,mid,n,i,sa,sc,j;
bool k[51],kb[51];
int main()
{
cin>>n;
for(i=1;i<=n;i++)
cin>>x[i]>>y[i];
l=1,r=2e9;
while(l<=r)
{
mid=(l+r)>>1;
for(i=1;i<=n;i++)
k[i]=kb[i]=0;
sa=sc=1;
k[1]=kb[1]=1;
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
{
if((abs(x[i]-x[j])+abs(y[i]-y[j]))<=2*mid&&(k[i]==1||k[j]==1)&&!(k[i]==1&&k[j]==1))
k[j]=k[i]=1,sa++;
if((abs(x[i]-x[j])+abs(y[i]-y[j]))<=2*mid+2&&(kb[i]==1||kb[j]==1)&&!(kb[i]==1&&kb[j]==1))
kb[i]=kb[j]=1,sc++;
}
if(sa==n&&sc<n)
{
cout<<mid;
return 0;
}
if(sa==n) r=mid-1;
else l=mid+1;
// cout<<mid<<" "<<sa<<" "<<sc<<endl;
}
cout<<l;
return 0;
}