提交时间:2026-04-15 21:46:28
运行 ID: 41314
#include<bits/stdc++.h> using namespace std; int T,n,flag; long double ans; struct xxs{ int x,y,z; }a[100005]; bool cmp(xxs x,xxs y){ return x.z<y.z; } int main(){ scanf("%d",&T); while(T--){ flag=0; ans=0.0; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d%d",&a[i].x,&a[i].y); a[i].z=a[i].x-a[i].y; } sort(a+1,a+n+1,cmp); for(int i=2;i<=n;i++){ if(a[i-1].z==a[i].z){ ans=3; flag=1; break; } else{ ans=max(ans,(abs(a[i].x-a[i-1].x)+abs(a[i].y-a[i-1].y))/sqrtl(1.0*abs(a[i].x-a[i-1].x)*abs(a[i].x-a[i-1].x)+1.0*abs(a[i].y-a[i-1].y)*abs(a[i].y-a[i-1].y))); } } if(flag){ printf("%.12lf\n",ans); continue; } for(int i=1;i<=n;i++){ a[i].z=a[i].x+a[i].y; } sort(a+1,a+n+1,cmp); for(int i=2;i<=n;i++){ if(a[i-1].z==a[i].z){ ans=3; flag=1; break; } else{ ans=max(ans,(abs(a[i].x-a[i-1].x)+abs(a[i].y-a[i-1].y))/sqrtl(1.0*abs(a[i].x-a[i-1].x)*abs(a[i].x-a[i-1].x)+1.0*abs(a[i].y-a[i-1].y)*abs(a[i].y-a[i-1].y))); } } printf("%.12lf\n",ans); } return 0; }