| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 41327 | 真很诡异你知道吗其实我不是皇子瑞 | 【S】T1 | C++ | 通过 | 100 | 363 MS | 1828 KB | 1267 | 2026-04-16 12:53:50 |
#include<bits/stdc++.h> using namespace std; long long _,n; map<long long,long long>mp1,mp2; struct sss{ long long x,y; }poi[100005]; inline bool cmp(sss a,sss b){ return abs(a.x+a.y)<abs(b.x+b.y); } inline double dis(long long i,long long j){ return sqrtl((poi[i].x-poi[j].x)*(poi[i].x-poi[j].x)+(poi[i].y-poi[j].y)*(poi[i].y-poi[j].y)); } inline double q(long long i,long long j){ return (abs(poi[i].x-poi[j].x)+abs(poi[i].y-poi[j].y))/dis(i,j); } int main(){ scanf("%lld",&_); while(_--){ scanf("%lld",&n); for(int i=1;i<=n;i++){ scanf("%lld%lld",&poi[i].x,&poi[i].y); } if(n<=1000){ double ans=0; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(i==j)continue; ans=max(ans,q(i,j)); } } printf("%.10lf\n",ans); continue; } sort(poi+1,poi+n+1,cmp); double ans=0; for(int i=1;i<=n;i++){ if(i!=1){ ans=max(ans,q(i,i-1)); } if(i!=n){ ans=max(ans,q(i,i+1)); } } printf("%.10lf\n",ans); } }