Language: C++

#include<bits/stdc++.h>

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;

#define ll          long long
#define pb          push_back
#define vi          vector<ll int>
#define all(a)      (a).begin(),(a).end()
#define F           first
#define S           second
#define rs(v,n)     v.resize(n)
#define hell        1000000007
#define peak        9123372036854775807
#define pii         acos(-1)
#define clr(a,x)    memset(a,x,sizeof(a))
#define ios         ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define ordered_set tree<ll int, null_type,less<ll int>, rb_tree_tag,tree_order_statistics_node_update>
using namespace std;
template<class x,class y> x sum(x a,y b){return a+b;}
template<class x,class y> x mul(x a,y b){return a*b;}
template<class x,class y> x sub(x a,y b){return a-b;}
template<class x,class y> x divi(x a,y b){return a/b;}

template<class x,class y>
istream &operator>>(istream &in,pair<x,y> &p) 
{ 
    in>>p.F>>p.S;
    return in;
}
template<class x>
istream &operator>>(istream &in,vector<x> &v) 
{
    for(auto& i:v)
        in>>i;
    return in;
}
template<class x,class y>
ostream &operator<<(ostream &out,pair<x,y> &p) 
{ 
    out<<"("<<p.F<<","<<p.S<<") ";
    return out; 
}
template<class x>
ostream &operator<<(ostream &out,vector<x> &v) 
{ 
    out<<v.size()<<endl;
    for(auto i:v)
        out<<i<<" ";
    out<<endl;
    return out; 
}
#define N  1000005

ll collinear(ll x1, ll y1, ll x2,  
               ll y2, ll x3, ll y3) 
{ 
    // Calculation the area of  
    // triangle. We have skipped  
    // multiplication with 0.5  
    // to avoid floating poll  
    // computations  
    ll a = x1 * (y2 - y3) +  
            x2 * (y3 - y1) +  
            x3 * (y1 - y2); 
  
    if (a == 0) 
        return 1;
        return 0; 
} 
vector<pair<ll,ll>> v;
double findCircle(double x1, double y1, double x2, double y2, double x3, double y3) 
{ 
    double x12 = x1 - x2; 
    double x13 = x1 - x3; 
  
    double y12 = y1 - y2; 
    double y13 = y1 - y3; 
  
    double y31 = y3 - y1; 
    double y21 = y2 - y1; 
  
    double x31 = x3 - x1; 
    double x21 = x2 - x1; 
  
    // x1^2 - x3^2 
    double sx13 = pow(x1, 2) - pow(x3, 2); 
  
    // y1^2 - y3^2 
    double sy13 = pow(y1, 2) - pow(y3, 2); 
  
    double sx21 = pow(x2, 2) - pow(x1, 2); 
    double sy21 = pow(y2, 2) - pow(y1, 2); 
  
    double f = ((sx13) * (x12) 
             + (sy13) * (x12) 
             + (sx21) * (x13) 
             + (sy21) * (x13)) 
            / (2 * ((y31) * (x12) - (y21) * (x13))); 
    double g = ((sx13) * (y12) 
             + (sy13) * (y12) 
             + (sx21) * (y13) 
             + (sy21) * (y13)) 
            / (2 * ((x31) * (y12) - (x21) * (y13))); 

  
    double c = -pow(x1, 2) - pow(y1, 2) - 2 * g * x1 - 2 * f * y1; 

    // if(1)
    // {
    // 	cout<<x1<<" "<<y1<<" "<<x2<<" "<<y2<<" "<<x3<<" "<<y3<<endl;
    // }

    // cout<<g<<" "<<f<<" "<<c<<endl;
  
    // eqn of circle be x^2 + y^2 + 2*g*x + 2*f*y + c = 0 
    // where centre is (h = -g, k = -f) and radius r 
    // as r^2 = h^2 + k^2 - c 
    double h = -g; 
    double k = -f; 
    double sqr_of_r = h * h + k * k - c; 
  
    // r is the radius 
    double r = sqrt(sqr_of_r); 
  
    return r;
} 
double dis(ll i,ll j)
{
	ll x=(v[i].F-v[j].F)*(v[i].F-v[j].F)+(v[i].S-v[j].S)*(v[i].S-v[j].S);
	double y=x;
	y=sqrt(y)/2;
	return y;
}

int main()
{
    ios;
    ll tt=1;
    // cin>>tt;
    while(tt--)
    {
    	ll i,j,k,l,m,n;
    	cin>>n;
    	for(i=0;i<n;i++)
    	{
    		ll x,y;
    		cin>>x>>y;
    		v.pb({x,y});
    	}
    	if(n==2)
    	{
    		double x=(v[0].F-v[1].F)*(v[0].F-v[1].F)+(v[0].S-v[1].S)*(v[0].S-v[1].S);
    		x=sqrt(x)/2;
    		cout<<setprecision(10)<<x;
    		return 0;
    	} 
    	double ans=0;
    	// for(i=0;i<n;i++)
    	// {
    	// 	for(j=0;j<n;j++)
    	// 	{
    	// 		ll x=(v[i].F-v[j].F)*(v[i].F-v[j].F)+(v[i].S-v[j].S)*(v[i].S-v[j].S);
    	// 		double y=x;
    	// 		y=sqrt(y)/2;
    	// 		ans=max(ans,y);
    	// 	}
    	// }
    	for(i=0;i<n;i++)
    	{
    		for(j=0;j<n;j++)
    		{
    			for(k=0;k<n;k++)
    			{
    				if(i==j||i==k||j==k)
    				{

    					continue;
    				}
    				if(collinear(v[i].F,v[i].S,v[j].F,v[j].S,v[k].F,v[k].S))
    				{
    					yy=max(yy,dis(i,j));
	    				yy=max(yy,dis(i,k));
	    				yy=max(yy,dis(k,j));
	    				ans=max(ans,yy);
    					continue;
    				}
    				double x=findCircle(v[i].F,v[i].S,v[j].F,v[j].S,v[k].F,v[k].S);
    				// cout<<x<<endl;
    				double yy=0;
    				yy=max(yy,dis(i,j));
    				yy=max(yy,dis(i,k));
    				yy=max(yy,dis(k,j));
    				// x=min(x,dis(i,j));
    				// x=min(x,dis(k,j));
    				x=min(x,yy);
    				ans=max(ans,x);
    			}
    		}
    	}
    	// double xx=ans;
    	// xx=sqrt(xx);
    	// xx=xx/2;
    	cout<<setprecision(10)<<ans;
    }
    return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:183:41: error: 'yy' was not declared in this scope; did you mean 'yn'?
  183 |                                         yy=max(yy,dis(i,j));
      |                                         ^~
      |                                         yn