提交时间:2024-10-30 14:28:29

运行 ID: 33894

#include<bits/stdc++.h> using namespace std; const int N=1e5+10; int t,n; struct node{ double x,y; }a[N]; bool cmp1(node x,node y){ return x.x-x.y<y.x-y.y; } bool cmp2(node x,node y){ return x.x+x.y<y.x+y.y; } double ans; double dis(node x,node y){ double dis1=abs(x.x-y.x)+abs(x.y-y.y); double dis2=sqrt((x.x-y.x)*(x.x-y.x)+(x.y-y.y)*(x.y-y.y)); return dis1/dis2; } void dashuju(){ sort(a+1,a+1+n,cmp1); for(int i=1;i<n;i++){ ans=max(ans,dis(a[i],a[i+1])); } sort(a+1,a+1+n,cmp2); for(int i=1;i<n;i++){ ans=max(ans,dis(a[i],a[i+1])); } printf("%.10lf\n",ans); } void xiaoshuju(){ for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ ans=max(ans,dis(a[i],a[j])); } } printf("%.10lf\n",ans); } signed main(){ //freopen("pair.in","r",stdin); //freopen("pair.out","w",stdout); scanf("%d",&t); while(t--){ ans=0; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%lf%lf",&a[i].x,&a[i].y); } if(n>1000){ dashuju(); }else{ xiaoshuju(); } } //fclose(stdin); //fclose(stdout); return 0; }