提交时间:2026-04-16 12:53:50
运行 ID: 41327
#include<bits/stdc++.h> using namespace std; long long _,n; map<long long,long long>mp1,mp2; struct sss{ long long x,y; }poi[100005]; inline bool cmp(sss a,sss b){ return abs(a.x+a.y)<abs(b.x+b.y); } inline double dis(long long i,long long j){ return sqrtl((poi[i].x-poi[j].x)*(poi[i].x-poi[j].x)+(poi[i].y-poi[j].y)*(poi[i].y-poi[j].y)); } inline double q(long long i,long long j){ return (abs(poi[i].x-poi[j].x)+abs(poi[i].y-poi[j].y))/dis(i,j); } int main(){ scanf("%lld",&_); while(_--){ scanf("%lld",&n); for(int i=1;i<=n;i++){ scanf("%lld%lld",&poi[i].x,&poi[i].y); } if(n<=1000){ double ans=0; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(i==j)continue; ans=max(ans,q(i,j)); } } printf("%.10lf\n",ans); continue; } sort(poi+1,poi+n+1,cmp); double ans=0; for(int i=1;i<=n;i++){ if(i!=1){ ans=max(ans,q(i,i-1)); } if(i!=n){ ans=max(ans,q(i,i+1)); } } printf("%.10lf\n",ans); } }