提交时间:2024-10-30 14:36:13
运行 ID: 33905
#include<bits/stdc++.h> #define int long long using namespace std; int n,x[100005],y[100005]; int dis1(int a,int b){ return abs(x[a]-x[b])+abs(y[a]-y[b]); } long double dis2(int a,int b){ // cout<<a<<" "<<b<<" "<< return sqrtl((x[a]-x[b])*(x[a]-x[b])+(y[a]-y[b])*(y[a]-y[b])); } long double ans=0; int id[1000005]; bool cmp1(int a,int b){ return x[a]-y[a]<x[b]-y[b]; } bool cmp2(int a,int b){ return x[a]+y[a]<x[b]+y[b]; } void slv(){ ans=0; for(int i=1;i<=n;i++)id[i]=i; sort(id+1,id+1+n,cmp1); for(int i=1;i<=n;i++){ // // cout<<i<<" "<<j<<" "<<dis1(i,j)<<" "<<dis2(i,j)<<endl; ans=max(ans,dis1(id[i],id[i+1])/dis2(id[i],id[i+1])); } sort(id+1,id+1+n,cmp2); for(int i=1;i<=n;i++){ // // cout<<i<<" "<<j<<" "<<dis1(i,j)<<" "<<dis2(i,j)<<endl; ans=max(ans,dis1(id[i],id[i+1])/dis2(id[i],id[i+1])); } printf("%.20Lf\n",ans); } void read(int &x){ char c=getchar(); x=0; bool f=0; while(!isdigit(c)){if(c=='-')f=1;c=getchar();} while(isdigit(c))x=x*10+c-'0',c=getchar(); if(f)x=-x; } signed main(){ //freopen("slpjbh.in","r",stdin); //freopen("slpjbh.out","w",stdout); int T; read(T); while(T--){ read(n); for(int i=1;i<=n;i++){ read(x[i]),read(y[i]); } slv(); } // cerr<<clock()*1.0/CLOCKS_PER_SEC<<endl; return 0; }