| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 41318 | 真很诡异你知道吗其实我不是皇子瑞 | 【S】T1 | C++ | 运行超时 | 0 | 1000 MS | 14316 KB | 1487 | 2026-04-15 21:47: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(){ //freopen("pair.in","r",stdin); //freopen("pair.out","w",stdout); scanf("%lld",&_); while(_--){ scanf("%lld",&n); mp1.clear(); mp2.clear(); long long flag=0; for(int i=1;i<=n;i++){ scanf("%lld%lld",&poi[i].x,&poi[i].y); if(mp1[poi[i].x+poi[i].y]){ flag=1; } if(mp2[poi[i].x-poi[i].y]){ flag=1; } mp1[poi[i].x+poi[i].y]++,mp2[poi[i].x-poi[i].y]++; } if(flag==1){ double ji=sqrtl(2); printf("%.10lf\n",ji); continue; } sort(poi+1,poi+n+1,cmp); double ans=0; for(int i=1;i<=n;i++){ double __=dis(1,2); if(i!=1){ ans=max(ans,q(i,i-1)); } if(i!=n){ ans=max(ans,q(i,i+1)); } } printf("%.10lf\n",ans); } }