提交时间:2024-10-30 13:05:40

运行 ID: 33888

//100 #include<bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> #define fr first #define sc second #define mk make_pair #define pb push_back #define LD long double int read(){int x=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9')x=x*10+c-'0',c=getchar();return x*f;} const int MAXN=100010; int n,fl; LD ans; pii a[MAXN]; LD dis1(pii x,pii y){ return (LD)abs(x.fr-y.fr)+abs(x.sc-y.sc); } LD dis2(pii x,pii y){ return (LD)sqrt((LD)(x.fr-y.fr)*(x.fr-y.fr)+(LD)(x.sc-y.sc)*(x.sc-y.sc)); } map<int,int>mp1,mp2; bool cmp1(pii x,pii y){return x.fr+x.sc<y.fr+y.sc;} bool cmp2(pii x,pii y){return x.fr-x.sc<y.fr-y.sc;} void slv(){ mp1.clear(),mp2.clear(),fl=0,ans=0; n=read(); for(int i=1;i<=n;i++)a[i].fr=read(),a[i].sc=read(),mp1[a[i].fr+a[i].sc]++,mp2[a[i].fr-a[i].sc]++,fl=max(fl,max(mp1[a[i].fr+a[i].sc],mp2[a[i].fr-a[i].sc])); if(fl>=2){ printf("%.10Lf\n",(LD)2.0/sqrt((LD)2.0)); return; } sort(a+1,a+n+1,cmp1); for(int i=1;i<n;i++){ ans=max(ans,dis1(a[i],a[i+1])*(LD)1.0/dis2(a[i],a[i+1])); } sort(a+1,a+n+1,cmp2); for(int i=1;i<n;i++){ ans=max(ans,dis1(a[i],a[i+1])*(LD)1.0/dis2(a[i],a[i+1])); } printf("%.10Lf\n",ans); } signed main(){ int _=read();while(_--) slv(); return 0; }