提交时间:2024-10-30 16:20:48
运行 ID: 33948
/*#include<bits/stdc++.h> #define ldb long double using namespace std; const int N=1e5+10; int x[N],y[N]; #define sq(x) (x)*(x) ldb dis(ldb a,ldb b,ldb c,ldb d){ return sqrtl(sq(a-c)+sq(b-d)); }ldb dis2(ldb a,ldb b,ldb c,ldb d){ return fabsl(a-c)+fabsl(b-d); }int n; void brute(){ ldb ans=0; for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ ans=max(ans,dis2(x[i],y[i],x[j],y[j])/dis(x[i],y[i],x[j],y[j])); } }printf("%.10Lf\n",ans); }void big(){ printf("%.10Lf\n",sqrtl(2)); }void slv(){ cin>>n; for(int i=1;i<=n;i++) cin>>x[i]>>y[i]; if(n<=1200) brute();else big(); } int main(){ freopen("pair.in","r",stdin); freopen("pair.out","w",stdout); int t;cin>>t;while(t--) slv(); return 0; }*/ #include<bits/stdc++.h> #define pii pair<int,int> #define mk make_pair #define fi first #define se second #define gc getchar #define isd(ch) ((ch)>='0'&&(ch)<='9') #define ldb long double using namespace std; const int N=1e5+20,C=105; inline int read(){ int t=0,f=1;char ch; while(!isd(ch)){ if(ch=='-') f=-1;ch=gc(); }while(isd(ch)) t=t*10+ch-'0',ch=gc(); return t*f; } bool cmp1(pii a,pii b){ return (a.fi+a.se)<(b.fi+b.se); }bool cmp2(pii a,pii b){ return (a.fi-a.se)<(b.fi-b.se); }ldb ans=0; #define sq(x) (x)*(x) ldb dis(long long a,long long b,long long c,long long d){ return sqrtl(sq(c-a)+sq(d-b)); }ldb dis2(int a,int b,int c,int d){ return fabsl(c-a)+fabsl(d-b); }ldb calc(int a,int b,int c,int d){ //cout<<a<<' '<<b<<' '<<c<<' '<<d<<' '; //printf("%.12Lf\n",dis2(a,b,c,d)/dis(a,b,c,d)); assert(dis(a,b,c,d)!=0); return dis2(a,b,c,d)/dis(a,b,c,d); } pii a[N]; void slv(){ int n=read();ans=0; for(int i=1;i<=n;i++) cin>>a[i].fi>>a[i].se; sort(a+1,a+n+1,cmp1); for(int i=2;i<=n;i++) ans=max(ans,calc(a[i].fi,a[i].se,a[i-1].fi,a[i-1].se)); sort(a+1,a+n+1,cmp2); for(int i=2;i<=n;i++) ans=max(ans,calc(a[i].fi,a[i].se,a[i-1].fi,a[i-1].se)); printf("%.12Lf\n",ans); } int main(){ int t=read();while(t--) slv(); return 0; }//jp8akioi