Language: C++

/*input

*/
#include <bits/stdc++.h>
#include <stdlib.h>
#include <time.h> 

using namespace std;
long long mod=1e9+7;
long long INF=1e7;
typedef long long int lld;
#define rep(i,a,n) for(long long int i = (a); i <= (n); ++i)
#define repI(i,a,n) for(int i = (a); i <= (n); ++i)
#define repD(i,a,n) for(long long int i = (a); i >= (n); --i)
#define repDI(i,a,n) for(int i = (a); i >= (n); --i)
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
#define sc(a) scanf("%lld",&a)
#define sc2(a,b) scanf("%lld%lld",&a,&b)
#define sc3(a,b,c) scanf("%lld%lld%lld",&a,&b,&c)
#define scd(a) scanf("%d",&a)
#define scd2(a,b) scanf("%d%d",&a,&b)
#define scd3(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define scf(a) scanf("%lf",&a)
#define scf2(a,b) scanf("%lf%lf",&a,&b)
#define scf3(a,b,c) scanf("%lf%lf%lf",&a,&b,&c)
#define prL(a) printf("%lld\n",a)
#define prS(a) printf("%lld ",a)
#define prdL(a) printf("%d\n",a)
#define prdS(a) printf("%d ",a)
#define all(c) c.begin(), c.end()
#define sz(a) ((int)a.size())
#define Error(x) cout<< #x << " = " << (x) <<endl;
#define Error2(a,b) cout<<"( "<<#a<<" , "<<#b<<" ) = ( "<<(a)<<" , "<<(b)<<" )\n";
#define Error3(a,b,c) cout<<"("<<#a<<" , "<<#b<<" , "<<#c<<" ) = ( "<<(a)<<" , "<<(b)<<" , "<<(c)<<")\n";
#define Error4(a,b,c,d) cout<<"("<<#a<<" , "<<#b<<" , "<<#c<<" , "<<#d<<" ) = ( "<<(a)<<" , "<<(b)<<" , "<<(c)<<" , "<<(d)<<")\n";
#define errop(a) cout<<#a<<" = ( "<<((a).x)<<" , "<<((a).y)<<" )\n";
#define popcount __builtin_popcountll
typedef pair<lld,lld> PA;
#define lim 100010
#define lim2 4023
#define numNodes 210
#define double long double
// inline lld sqr(lld x) { return x * x; }
// unordered_map<lld,lld>::iterator it;
// std::ios::sync_with_stdio(false);
// priority_queue<PA> Q;
// lld dp[1<<18];

double X[lim],Y[lim];
lld A[lim];
const long double PI = acos((long double)-1.0);
// PA P[lim],Q[lim];
lld n,m,p,q;
// string S[lim],R[lim];
// vector<lld> V[lim];
// unordered_map<lld,lld> Ind;


lld powP(lld a,lld b){
    if(b==0) return 1%mod;
    lld k;
    k=powP(a,b/2);
    k=k*k%mod;
    if(b%2==0) return k;
    else return a*k%mod;
}

bool bitSet(lld n,lld i){
    if((n&(1LL<<i))!=0) return true;
    else return false;
}

void circle_circle_intersection(double x0, double y0, double r0,double x1, double y1, double r1,double &xi, double &yi,double &xi_prime, double &yi_prime){
  double a, dx, dy, d, h, rx, ry;
  double x2, y2;
  dx = x1 - x0;
  dy = y1 - y0;

  d = hypot(dx,dy);

  a = ((r0*r0) - (r1*r1) + (d*d)) / (2.0 * d) ;

  x2 = x0 + (dx * a/d);
  y2 = y0 + (dy * a/d);

  h = sqrt((r0*r0) - (a*a));

  rx = -dy * (h/d);
  ry = dx * (h/d);

  xi = x2 + rx;
  xi_prime = x2 - rx;
  yi = y2 + ry;
  yi_prime = y2 - ry;

}

double findAngle(double x1,double y1,double x2,double y2){
    double multi,dot,det;
    dot = x1*x2+y1*y2;
    det = x1*y2-y1*x2;
    // double angle=y/multi/50;
    double angle=atan2(det,dot)*180/PI;
    // Error(angle);
    if(angle<0) angle=360+angle;
    // Error(angle);
    angle=angle/360*100;
    // Error(angle);
    return angle;
}

double findDis(double x1,double y1,double x2,double y2){
    return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}

int main(){
    double T,i,p,j,l,r,b,k,c,a,d,w,x,y,v,z,t,curr,prev,sum,ans,pos,val,countA,secondMin,indicator;
    double x1,y1,x2,y2;
    sc(n);
    m = n;
    rep(i,1,n){
        scf2(X[i],Y[i]);
        // X[i]+=1e4;
        // Y[i]+=1e4;
    }
    ans=1e5;
    double low=0,high=ans,mid;
    while(high-low>0.0000001){
        mid=low+(high-low)/2;
        bool t=false;
        rep(i,1,n){
                // Error(mid);
            int offset=0,countA=0,num=0,curr,a,b,tempNum;
            unordered_map<int,int> Initial,Final;
            rep(j,1,n){
                if(findDis(X[i],Y[i],X[j],Y[j])>mid+mid) continue;
                if(X[i]==X[j] && Y[i]==Y[j]){
                    offset++;
                    continue;
                }
                circle_circle_intersection(X[i],Y[i],mid,X[j],Y[j],mid,x1,y1,x2,y2);
                // Error4(x1,y1,x2,y2);
                v=findAngle(x1-X[i],y1-Y[i],0,1);
                z=findAngle(x2-X[i],y2-Y[i],0,1);
                // Error2(v,z);
                if(findDis(X[i],Y[i]+mid,X[j],Y[j])<=mid+0.0001){
                    a=max(v,z)*10000;
                    b=min(v,z)*10000;
                    countA++;
                }
                else{
                    a=min(v,z)*10000;
                    b=max(v,z)*10000;
                }
                // Error4(i,j,a,b);
                Initial[a]++;
                Final[b]++;
                A[num++]=a;
                A[num++]=b;
            }
            sort(A,A+num);
            tempNum=num;
            num=1;
            rep(i,1,tempNum-1) if(A[i]!=A[i-1]) A[num++]=A[i];
            curr=countA;
            rep(i,0,num-1){
                curr+=Initial[A[i]];
                countA=max(countA,curr);
                curr-=Final[A[i]];
            }
            // Error3(i,countA,offset);
            if(countA+offset>=m){
                t=true;
                break;
            }
        }
        // Error2(mid,t);
        if(t){
            ans=mid;
            high=mid;
        }
        else low=mid;
    }
    printf("%lf\n",ans );
    return 0;
}

Compiler output:
a.cc:45:16: error: 'long long' specified with 'double'
   45 | #define double long double
      |                ^~~~
a.cc:54:12: note: in expansion of macro 'double'
   54 | const long double PI = acos((long double)-1.0);
      |            ^~~~~~
a.cc:45:16: error: 'long long' specified with 'double'
   45 | #define double long double
      |                ^~~~
a.cc:54:35: note: in expansion of macro 'double'
   54 | const long double PI = acos((long double)-1.0);
      |                                   ^~~~~~