Language: C++

#include <bits/stdc++.h>
using namespace std;

typedef double lf;
const lf pai = 3.141592653589793238462643383279;
class point{
public:
  lf x, y;
  point(){}
  point(lf X, lf Y){x = X; y = Y;}
};

point operator + (point x, point y){return point(x.x + y.x, x.y + y.y);}
point operator - (point x, point y){return point(x.x - y.x, x.y - y.y);}
point operator * (point x, lf y){return point(x.x * y, x.y * y);}
point operator * (lf x, point y){return point(x * y.x, x * y.y);}

lf dot(point a, point b){return a.x * b.x + a.y * b.y;}
lf det(point a, point b){return a.x * b.y - a.y * b.x;}
lf len2(point a){return a.x * a.x + a.y * a.y;}
lf len(point a){return sqrt(a.x * a.x + a.y * a.y);}
lf sqr(lf x){return x * x;}

class circle{
public:
  point a; lf r;
  circle(){}
  circle(point A, lf R){a = A; r = R;}
};

void MOD(lf &x){while (x > pai) x -= (pai + pai); while (x < -pai) x += (pai + pai);}
int cross(circle a, circle b, lf &r1, lf &r2){
  lf D = len2(a.a - b.a);
  if (D > sqr(a.r + b.r)) return 0;
  else if (D < sqr(a.r - b.r)) return 0;
  lf t1 = atan2(b.a.y - a.a.y, b.a.x - a.a.x);
  lf t2 = acos((D + sqr(a.r) - sqr(b.r)) / (2 * sqrt(D) * a.r));
  r1 = t1 - t2; r2 = t1 + t2; MOD(r1); MOD(r2);
  return 1;
}

point P[2333];
int n, M;

pair <lf, int> d[2333];
int l;
void add(lf L, lf R){d[++l] = make_pair(L, 1); d[++l] = make_pair(R, -1);}
bool check(int p, lf r){
  int i, j; lf _l, _r;
  circle cb(P[p], r);
  l = 0;
  for (i = 1; i <= n; i++)
    if (i != p){
      circle cr(P[i], r);
      if (cross(cb, cr, _l, _r)){
	if (_l > _r) add(_l, pai), add(-pai, _r);
	else add(_l, _r);
      }
    }
  sort(d + 1, d + l + 1);
  j = 0;
  for (i = 1; i <= l; i++){
    j += d[i].second; if (j >= M - 1) return 1;
  }
  return 0;
}

#define m (l + r) / 2
int p[2333];
int main(){
  int i, j;
  lf ans = 1e10, l, r;
  scanf("%d", &n);
  M = n
  for (i = 1; i <= n; i++) scanf("%lf %lf", &P[i].x, &P[i].y), p[i] = i;
  random_shuffle(p + 1, p + n + 1);
  for (i = 1; i <= n; i++)
    if (check(p[i], ans)){
      for (l = 0, r = ans; r - l > 1e-5; )
	if (check(p[i], m)) r = m; else l = m;
      ans = r;
    }
  printf("%.9lf", ans);
  return 0;
}
// soln copied from https://www.codechef.com/viewsolution/12412231

Compiler output:
a.cc: In function 'int main()':
a.cc:74:8: error: expected ';' before 'for'
   74 |   M = n
      |        ^
      |        ;
   75 |   for (i = 1; i <= n; i++) scanf("%lf %lf", &P[i].x, &P[i].y), p[i] = i;
      |   ~~~   
a.cc:75:26: error: expected ';' before ')' token
   75 |   for (i = 1; i <= n; i++) scanf("%lf %lf", &P[i].x, &P[i].y), p[i] = i;
      |                          ^
      |                          ;
a.cc:76:17: warning: 'void std::random_shuffle(_RAIter, _RAIter) [with _RAIter = int*]' is deprecated: use 'std::shuffle' instead [-Wdeprecated-declarations]
   76 |   random_shuffle(p + 1, p + n + 1);
      |   ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14/algorithm:61,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:51,
                 from a.cc:1:
/usr/include/c++/14/bits/stl_algo.h:4492:5: note: declared here
 4492 |     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
      |     ^~~~~~~~~~~~~~