Language: C++

#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<queue>
#include<math.h>
using namespace std;
#define int long long
#define rep(i,n) for(int i=0;i<n;++i)
#define rep1(i,n) for(int i=1;i<=n;++i)
int inf=1000000007;

struct Point{
  int x;
  int y;
  int dist(Point c){
    int dx=x-c.x;
    int dy=y-c.y;
    int res=dx*dx+dy*dy;
    return res;
  }
  double dist(double cx,double cy){
    double dx=x-cx;
    double dy=y-cy;
    double res=dx*dx+dy*dy;
    return res;
  }
};
double rr(Point a,Point b, Point c,double& ox,double& oy){
  int n=3;
  double x1,x2,x3,y1,y2,y3,r;
  x1=a.x;x2=b.x;x3=c.x;
  y1=a.y;y2=b.y;y3=c.y;
		//scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3);
		ox=((y2-y1)*((y3*y3-y1*y1)+(x3*x3-x1*x1))-(y3-y1)*((y2*y2-y1*y1)+(x2*x2-x1*x1)))/
				(2*((x3-x1)*(y2-y1)-(x2-x1)*(y3-y1)));
		if(y2 != y1){
			oy=(2*(x1-x2)*ox+(y2*y2-y1*y1)+(x2*x2-x1*x1))/(2*(y2-y1));
		}else{
			oy=(2*(x1-x3)*ox+(y3*y3-y1*y1)+(x3*x3-x1*x1))/(2*(y3-y1));
		}
		r = sqrt((ox-x1)*(ox-x1)+(oy-y1)*(oy-y1));
    return r;
}
bool judge(int i,int j,int k,double r,double ox,double oy,vector<Point> const& p,int n){
bool ans=true;
rep(i,n){
  if(p[i].dist(ox,oy)>r)ans=false;
}
}
signed main(){
  int n;cin>>n;
  vector<Point> p(n);
  double cx=0;
  double cy=0;
  rep(i,n){
    Point buf;
    cin>>buf.x>>buf.y;
    p[i]=buf;
  }
  double min=inf;
  for(int i=0;i<n;i++){
    for(int j=i+1;j<n;j++){
      for(int k=j+1;k<n;k++){
        Point buf[3];
        buf[0]=p[i];
        buf[1]=p[j];
        buf[2]=p[k];
        double ox,oy;
        double tmp=rr(buf[0],buf[1],buf[2],ox,oy,n);
        if(min>tmp&&judge(i,j,k,tmp,ox,oy,p))min=tmp;
      }
    }
  }
  if(n==2)min=p[0].dist(p[1].x,p[1].y)/2;
  printf("%.12lf\n",min);
  return 0;
}

Compiler output:
a.cc: In function 'bool judge(long long int, long long int, long long int, double, double, double, const std::vector<Point>&, long long int)':
a.cc:48:15: error: passing 'const __gnu_cxx::__alloc_traits<std::allocator<Point>, Point>::value_type' {aka 'const Point'} as 'this' argument discards qualifiers [-fpermissive]
   48 |   if(p[i].dist(ox,oy)>r)ans=false;
      |      ~~~~~~~~~^~~~~~~
a.cc:22:10: note:   in call to 'double Point::dist(double, double)'
   22 |   double dist(double cx,double cy){
      |          ^~~~
a.cc:50:1: warning: no return statement in function returning non-void [-Wreturn-type]
   50 | }
      | ^
a.cc: In function 'int main()':
a.cc:70:22: error: too many arguments to function 'double rr(Point, Point, Point, double&, double&)'
   70 |         double tmp=rr(buf[0],buf[1],buf[2],ox,oy,n);
      |                    ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a.cc:29:8: note: declared here
   29 | double rr(Point a,Point b, Point c,double& ox,double& oy){
      |        ^~
a.cc:71:26: error: too few arguments to function 'bool judge(long long int, long long int, long long int, double, double, double, const std::vector<Point>&, long long int)'
   71 |         if(min>tmp&&judge(i,j,k,tmp,ox,oy,p))min=tmp;
      |                     ~~~~~^~~~~~~~~~~~~~~~~~~
a.cc:45:6: note: declared here
   45 | bool judge(int i,int j,int k,double r,double ox,double oy,vector<Point> const& p,int n){
      |      ^~~~~