提交时间:2024-10-30 15:25:39

运行 ID: 33924

#include<bits/stdc++.h> using namespace std; #define int long long #define double long double double x[100300],y[100300],w[100300]; int n; inline double f(int i,int j){ if(i==j)return 0; double dx=x[i]-x[j],dy=y[i]-y[j]; return (fabsl(dx)+fabsl(dy))/sqrtl(dx*dx+dy*dy); } int p[100300]; inline bool cmp(int x,int y){ return w[x]<w[y]; } signed main(){ ios::sync_with_stdio(0); cin.tie(0),cout.tie(0); // freopen("pair.in","r",stdin); // freopen("pair.out","w",stdout); int t; cin>>t; while(t--){ cin>>n; for(int i=1;i<=n;i++)cin>>x[i]>>y[i]; for(int i=1;i<=n;i++){ // double d=(y[i]-x[i])/2; // double dx=x[i]+d,dy=y[i]-d; w[i]=x[i]-y[i]; p[i]=i; } sort(p+1,p+n+1,cmp); double res=0; for(int i=1;i<n;i++) res=max(res,f(p[i],p[i+1])); // for(int i=1;i<=n;i++) // x[i]-=1e9,y[i]-=1e9; for(int i=1;i<=n;i++){ // double d=(y[i]+x[i])/2; // double dx=x[i]-d,dy=y[i]-d; w[i]=x[i]+y[i]; p[i]=i; } sort(p+1,p+n+1,cmp); for(int i=1;i<n;i++) res=max(res,f(p[i],p[i+1])); printf("%.10Lf\n",res); } fflush(stdout); cout.flush(); fclose(stdout); return 0; }