Language: C++

#pragma GCC optimize("O3")
#pragma comment(linker, "/stack:200000000")
#pragma GCC optimize("unroll-loops")
 
#include <algorithm>
#include <bitset>
#include <cassert>
#include <chrono>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>
#include <functional>
#include <iomanip>
#include <iostream>
#include <iterator>
#include <limits>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <random>
#include <ratio>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
using namespace std;
 
typedef long long ll;
typedef long double LD;
#define int ll
#define double LD
#define pb push_back
#define mp make_pair
#define REP(i,n) for (int i = 0; i < n; i++)
#define loop(i,n) for (int i = 0; i < n; i++)
#define FOR(i,a,b) for (int i = a; i < b; i++)
#define REPD(i,n) for (int i = n-1; i >= 0; i--)
#define FORD(i,a,b) for (int i = a; i >= b; i--)
#define remax(a,b) a = max(a,b)
#define remin(a,b) a = min(a,b)
#define mem(a, b) memset(a, b, sizeof a)
#define append push_back
#define all(v) v.begin(),v.end()
#define F first
#define S second
#define print(x) cout << (x) << endl
#define PRECISION(x) cout << fixed << setprecision(x)
#define FAST_IO ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)

const double PI=acos(-1);
const int MOD = 1000000007;
const int FMOD = 998244353;
const double eps = 1e-9;

mt19937 RNG(chrono::steady_clock::now().time_since_epoch().count()); 
#define SHUF(v) shuffle(all(v), RNG);
// Use mt19937_64 for 64 bit random numbers.
 
void solve();
 
signed main(){
    FAST_IO;
    PRECISION(10);
 
    int t = 1;
    //cin>> t;
    FOR(testcase,1,t+1){
        // printf("Case #%lld: ",testcase); 
        solve();
    }
    cerr << "\nTime elapsed: " << 1000 * clock() / CLOCKS_PER_SEC << "ms\n";
}

pair<pair<double, double>, 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; 

    double sx13 = pow(x1, 2) - pow(x3, 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; 
    double h = -g; 
    double k = -f; 
    double sqr_of_r = h * h + k * k - c; 
    double r = sqrt(sqr_of_r);

    return mp(mp(h, k), r); 
}

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

bool incircle(pair<pair<double, double>, double> circle, double x, double y){
    return (dist(circle.F.F, circle.F.S, x, y) <= circle.S);
}
 
void solve(){
    int n;
    cin>> n;
    vector<pair<double, double> > pts(n);

    for(int i = 0; i < n; i++)
        cin>> pts[i].F >> pts[i].S;

    if(n == 2){
        print(dist(pts[0].F, pts[0].S, pts[1].F, pts[1].S)/2);
        return;
    }

    double ans = INT_MAX;

    for(int i = 0; i < n; i++){
        for(int j = i + 1; j < n; j++){
            for(int k = j + 1; k < n; k++){
                auto circle = findCircle(pts[i].F, pts[i].S, pts[j].F, pts[j].S, pts[k].F, pts[k].S);
                bool flag = 1;
                //cout<< i << ' ' << j << ' ' << k << ' ' << circle.S << endl;
                for(int l = 0; l < n; l++)
                    if(!incircle(circle, pts[l].F, pts[l].S))
                        flag = 0;
                if(flag)
                    ans = min(ans, circle.S);
            }
        }
    }

    print((ans));
}

Compiler output:
a.cc: In function 'void solve()':
a.cc:144:18: error: 'INT_MAX' was not declared in this scope
  144 |     double ans = INT_MAX;
      |                  ^~~~~~~
a.cc:34:1: note: 'INT_MAX' is defined in header '<climits>'; this is probably fixable by adding '#include <climits>'
   33 | #include <utility>
  +++ |+#include <climits>
   34 | #include <vector>